enh: user message edit

This commit is contained in:
Timothy J. Baek 2024-08-19 21:51:10 +02:00
parent d79d3f1352
commit 330eb0fbb1
2 changed files with 68 additions and 45 deletions

View File

@ -51,34 +51,43 @@
} }
}; };
const confirmEditMessage = async (messageId, content) => { const confirmEditMessage = async (messageId, content, submit = true) => {
let userPrompt = content; if (submit) {
let userMessageId = uuidv4(); let userPrompt = content;
let userMessageId = uuidv4();
let userMessage = { let userMessage = {
id: userMessageId, id: userMessageId,
parentId: history.messages[messageId].parentId, parentId: history.messages[messageId].parentId,
childrenIds: [], childrenIds: [],
role: 'user', role: 'user',
content: userPrompt, content: userPrompt,
...(history.messages[messageId].files && { files: history.messages[messageId].files }), ...(history.messages[messageId].files && { files: history.messages[messageId].files }),
models: selectedModels models: selectedModels
}; };
let messageParentId = history.messages[messageId].parentId; let messageParentId = history.messages[messageId].parentId;
if (messageParentId !== null) { if (messageParentId !== null) {
history.messages[messageParentId].childrenIds = [ history.messages[messageParentId].childrenIds = [
...history.messages[messageParentId].childrenIds, ...history.messages[messageParentId].childrenIds,
userMessageId userMessageId
]; ];
}
history.messages[userMessageId] = userMessage;
history.currentId = userMessageId;
await tick();
await sendPrompt(userPrompt, userMessageId);
} else {
history.messages[messageId].content = content;
await tick();
await updateChatById(localStorage.token, chatId, {
messages: messages,
history: history
});
} }
history.messages[userMessageId] = userMessage;
history.currentId = userMessageId;
await tick();
await sendPrompt(userPrompt, userMessageId);
}; };
const updateChatMessages = async () => { const updateChatMessages = async () => {

View File

@ -45,8 +45,8 @@
messageEditTextAreaElement?.focus(); messageEditTextAreaElement?.focus();
}; };
const editMessageConfirmHandler = async () => { const editMessageConfirmHandler = async (submit = true) => {
confirmEditMessage(message.id, editedContent); confirmEditMessage(message.id, editedContent, submit);
edit = false; edit = false;
editedContent = ''; editedContent = '';
@ -140,26 +140,40 @@
}} }}
/> />
<div class=" mt-2 mb-1 flex justify-end space-x-1.5 text-sm font-medium"> <div class=" mt-2 mb-1 flex justify-between text-sm font-medium">
<button <div>
id="close-edit-message-button" <button
class="px-4 py-2 bg-white dark:bg-gray-900 hover:bg-gray-100 text-gray-800 dark:text-gray-100 transition rounded-3xl" id="save-edit-message-button"
on:click={() => { class=" px-4 py-2 bg-gray-50 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 border dark:border-gray-700 text-gray-700 dark:text-gray-200 transition rounded-3xl"
cancelEditMessage(); on:click={() => {
}} editMessageConfirmHandler(false);
> }}
{$i18n.t('Cancel')} >
</button> {$i18n.t('Save')}
</button>
</div>
<button <div class="flex space-x-1.5">
id="save-edit-message-button" <button
class=" px-4 py-2 bg-gray-900 dark:bg-white hover:bg-gray-850 text-gray-100 dark:text-gray-800 transition rounded-3xl" id="close-edit-message-button"
on:click={() => { class="px-4 py-2 bg-white dark:bg-gray-900 hover:bg-gray-100 text-gray-800 dark:text-gray-100 transition rounded-3xl"
editMessageConfirmHandler(); on:click={() => {
}} cancelEditMessage();
> }}
{$i18n.t('Send')} >
</button> {$i18n.t('Cancel')}
</button>
<button
id="save-edit-message-button"
class=" px-4 py-2 bg-gray-900 dark:bg-white hover:bg-gray-850 text-gray-100 dark:text-gray-800 transition rounded-3xl"
on:click={() => {
editMessageConfirmHandler();
}}
>
{$i18n.t('Send')}
</button>
</div>
</div> </div>
</div> </div>
{:else} {:else}