From ff3799637bf41811a15a61a82f6344812e599200 Mon Sep 17 00:00:00 2001 From: Webifi Date: Tue, 25 Jul 2023 00:21:04 -0500 Subject: [PATCH] Allow scrolling while streaming re: #241 --- src/lib/Chat.svelte | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/Chat.svelte b/src/lib/Chat.svelte index 027173c..db0d065 100644 --- a/src/lib/Chat.svelte +++ b/src/lib/Chat.svelte @@ -246,6 +246,19 @@ chatRequest.updating = true chatRequest.updatingMessage = '' + let doScroll = true + let didScroll = false + + const checkUserScroll = (e: Event) => { + const el = e.target as HTMLElement + if (el && e.isTrusted && didScroll) { + // from user + doScroll = (window.innerHeight + window.scrollY + 10) >= document.body.offsetHeight + } + } + + window.addEventListener('scroll', checkUserScroll) + try { const response = await chatRequest.sendRequest($currentChatMessages, { chat, @@ -253,7 +266,8 @@ streaming: chatSettings.stream, fillMessage, onMessageChange: (messages) => { - scrollToBottom(true) + if (doScroll) scrollToBottom(true) + didScroll = !!messages[0]?.content } }) await response.promiseToFinish() @@ -264,6 +278,8 @@ } catch (e) { console.error(e) } + + window.removeEventListener('scroll', checkUserScroll) chatRequest.updating = false chatRequest.updatingMessage = ''