diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte index 160d7eb37..22d6b95d0 100644 --- a/src/lib/components/chat/Messages.svelte +++ b/src/lib/components/chat/Messages.svelte @@ -255,7 +255,7 @@ await updateChat(); }; - const editMessage = async (messageId, content, submit = true) => { + const editMessage = async (messageId, { content, files }, submit = true) => { if (history.messages[messageId].role === 'user') { if (submit) { // New user message @@ -268,7 +268,7 @@ childrenIds: [], role: 'user', content: userPrompt, - ...(history.messages[messageId].files && { files: history.messages[messageId].files }), + ...(files && { files: files }), models: selectedModels, timestamp: Math.floor(Date.now() / 1000) // Unix epoch }; @@ -290,6 +290,7 @@ } else { // Edit user message history.messages[messageId].content = content; + history.messages[messageId].files = files; await updateChat(); } } else { diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index e8143e47c..79491d7eb 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -377,7 +377,7 @@ const editMessageConfirmHandler = async () => { const messageContent = postprocessAfterEditing(editedContent ? editedContent : ''); - editMessage(message.id, messageContent, false); + editMessage(message.id, { content: messageContent }, false); edit = false; editedContent = ''; @@ -388,7 +388,7 @@ const saveAsCopyHandler = async () => { const messageContent = postprocessAfterEditing(editedContent ? editedContent : ''); - editMessage(message.id, messageContent); + editMessage(message.id, { content: messageContent }); edit = false; editedContent = ''; diff --git a/src/lib/components/chat/Messages/UserMessage.svelte b/src/lib/components/chat/Messages/UserMessage.svelte index 24d657816..a5556ec86 100644 --- a/src/lib/components/chat/Messages/UserMessage.svelte +++ b/src/lib/components/chat/Messages/UserMessage.svelte @@ -43,6 +43,8 @@ let edit = false; let editedContent = ''; + let editedFiles = []; + let messageEditTextAreaElement: HTMLTextAreaElement; let message = JSON.parse(JSON.stringify(history.messages[messageId])); @@ -62,6 +64,7 @@ const editMessageHandler = async () => { edit = true; editedContent = message.content; + editedFiles = message.files; await tick(); @@ -74,15 +77,17 @@ }; const editMessageConfirmHandler = async (submit = true) => { - editMessage(message.id, editedContent, submit); + editMessage(message.id, { content: editedContent, files: editedFiles }, submit); edit = false; editedContent = ''; + editedFiles = []; }; const cancelEditMessage = () => { edit = false; editedContent = ''; + editedFiles = []; }; const deleteMessageHandler = async () => { @@ -141,30 +146,90 @@ {/if}