mirror of
https://github.com/coalaura/whiskr.git
synced 2025-09-08 17:06:42 +00:00
mark retry messages
This commit is contained in:
@@ -150,6 +150,24 @@ body.loading #version {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.message::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
background: rgba(237, 135, 150, 0.2);
|
||||
opacity: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
transition: opacity 150ms;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.message.marked::after {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.message.user {
|
||||
align-self: end;
|
||||
}
|
||||
|
@@ -38,6 +38,12 @@
|
||||
}, 0);
|
||||
}
|
||||
|
||||
function mark(index) {
|
||||
for (let x = 0; x < messages.length; x++) {
|
||||
messages[x].mark(Number.isInteger(index) && x >= index);
|
||||
}
|
||||
}
|
||||
|
||||
class Message {
|
||||
#id;
|
||||
#role;
|
||||
@@ -225,21 +231,29 @@
|
||||
|
||||
_opts.appendChild(_optRetry);
|
||||
|
||||
_optRetry.addEventListener("mouseenter", () => {
|
||||
const index = this.index(!_assistant ? 1 : 0);
|
||||
|
||||
mark(index);
|
||||
});
|
||||
|
||||
_optRetry.addEventListener("mouseleave", () => {
|
||||
mark(false);
|
||||
});
|
||||
|
||||
_optRetry.addEventListener("click", () => {
|
||||
let index = messages.findIndex((message) => message.#id === this.#id);
|
||||
const index = this.index(!_assistant ? 1 : 0);
|
||||
|
||||
if (index === -1) {
|
||||
if (index === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_assistant) {
|
||||
index++;
|
||||
}
|
||||
|
||||
while (messages.length > index) {
|
||||
messages[messages.length - 1].delete();
|
||||
}
|
||||
|
||||
mark(false);
|
||||
|
||||
generate(false);
|
||||
});
|
||||
|
||||
@@ -446,6 +460,20 @@
|
||||
);
|
||||
}
|
||||
|
||||
index(offset = 0) {
|
||||
const index = messages.findIndex((message) => message.#id === this.#id);
|
||||
|
||||
if (index === -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return index + offset;
|
||||
}
|
||||
|
||||
mark(state = false) {
|
||||
this.#_message.classList.toggle("marked", state);
|
||||
}
|
||||
|
||||
getData(full = false) {
|
||||
const data = {
|
||||
role: this.#role,
|
||||
|
Reference in New Issue
Block a user