diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte index 867c38ea4..3080bcac9 100644 --- a/src/lib/components/chat/Messages.svelte +++ b/src/lib/components/chat/Messages.svelte @@ -108,6 +108,33 @@ await updateChatMessages(); }; + const saveNewResponseMessage = async (message, content) => { + const responseMessageId = uuidv4(); + const parentId = message.parentId; + + const responseMessage = { + ...message, + id: responseMessageId, + parentId: parentId, + childrenIds: [], + content: content, + timestamp: Math.floor(Date.now() / 1000) // Unix epoch + }; + + history.messages[responseMessageId] = responseMessage; + history.currentId = responseMessageId; + + // Append messageId to childrenIds of parent message + if (parentId !== null) { + history.messages[parentId].childrenIds = [ + ...history.messages[parentId].childrenIds, + responseMessageId + ]; + } + + await updateChatMessages(); + }; + const rateMessage = async (messageId, rating) => { history.messages[messageId].annotation = { ...history.messages[messageId].annotation, @@ -342,6 +369,7 @@ {readOnly} {updateChatMessages} {confirmEditResponseMessage} + {saveNewResponseMessage} {showPreviousMessage} {showNextMessage} {rateMessage} diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index 03928e3e7..9a03b0c4a 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -85,6 +85,8 @@ export let updateChatMessages: Function; export let confirmEditResponseMessage: Function; + export let saveNewResponseMessage: Function; + export let showPreviousMessage: Function; export let showNextMessage: Function; export let rateMessage: Function; @@ -267,6 +269,15 @@ await tick(); }; + const saveNewMessageHandler = async () => { + saveNewResponseMessage(message, editedContent); + + edit = false; + editedContent = ''; + + await tick(); + }; + const cancelEditMessage = async () => { edit = false; editedContent = ''; @@ -404,26 +415,40 @@ }} /> -
- +
+
+ +
- +
+ + + +
{:else}