diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index 47c1b5142..ae55ca349 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -365,8 +365,13 @@ await tick(); + const messagesContainer = document.getElementById('messages-container'); + const savedScrollTop = messagesContainer?.scrollTop; + editTextAreaElement.style.height = ''; editTextAreaElement.style.height = `${editTextAreaElement.scrollHeight}px`; + + if (messagesContainer) messagesContainer.scrollTop = savedScrollTop; }; const editMessageConfirmHandler = async () => { @@ -697,8 +702,13 @@ class=" bg-transparent outline-hidden w-full resize-none" bind:value={editedContent} on:input={(e) => { + const messagesContainer = document.getElementById('messages-container'); + const savedScrollTop = messagesContainer?.scrollTop; + e.target.style.height = ''; e.target.style.height = `${e.target.scrollHeight}px`; + + if (messagesContainer) messagesContainer.scrollTop = savedScrollTop; }} on:keydown={(e) => { if (e.key === 'Escape') { diff --git a/src/lib/components/chat/Messages/UserMessage.svelte b/src/lib/components/chat/Messages/UserMessage.svelte index 417c6737f..f21d91bfb 100644 --- a/src/lib/components/chat/Messages/UserMessage.svelte +++ b/src/lib/components/chat/Messages/UserMessage.svelte @@ -50,6 +50,7 @@ let editedFiles = []; let messageEditTextAreaElement: HTMLTextAreaElement; + let editScrollContainer: HTMLDivElement; let message = JSON.parse(JSON.stringify(history.messages[messageId])); $: if (history.messages) { @@ -73,10 +74,14 @@ await tick(); if (messageEditTextAreaElement) { + const messagesContainer = document.getElementById('messages-container'); + const savedScrollTop = messagesContainer?.scrollTop; + messageEditTextAreaElement.style.height = ''; messageEditTextAreaElement.style.height = `${messageEditTextAreaElement.scrollHeight}px`; - messageEditTextAreaElement?.focus(); + if (messagesContainer) messagesContainer.scrollTop = savedScrollTop; + messageEditTextAreaElement?.focus({ preventScroll: true }); } }; @@ -283,15 +288,22 @@ {/if} -
+