diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 851f31cdf7..deae018fa9 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -356,9 +356,7 @@ } }; - const showMessage = async (message, ignoreSettings = false) => { - await tick(); - + const showMessage = async (message, scroll = true) => { const _chatId = JSON.parse(JSON.stringify($chatId)); let _messageId = JSON.parse(JSON.stringify(message.id)); @@ -378,18 +376,19 @@ history.currentId = _messageId; - await tick(); - await tick(); await tick(); - if (($settings?.scrollOnBranchChange ?? true) || ignoreSettings) { + if (($settings?.scrollOnBranchChange ?? true) && scroll) { const messageElement = document.getElementById(`message-${message.id}`); if (messageElement) { - messageElement.scrollIntoView({ behavior: 'smooth' }); + messageElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } } await tick(); + await tick(); + await tick(); + saveChatHandler(_chatId, history); }; diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte index 20579689a5..3c8d7485b4 100644 --- a/src/lib/components/chat/Messages.svelte +++ b/src/lib/components/chat/Messages.svelte @@ -392,12 +392,7 @@ delete history.messages[id]; }); - await tick(); - - showMessage({ id: parentMessageId }); - - // Update the chat - await updateChat(); + showMessage({ id: parentMessageId }, false); }; const triggerScroll = () => { diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index fa0b967e00..113992a034 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -612,6 +612,7 @@ class=" flex w-full message-{message.id}" id="message-{message.id}" dir={$settings.chatDirection} + style="scroll-margin-top: 3rem;" >