fix(desktop): auto-scroll

thinking-toggle-wip
Adam 2025-12-24 05:57:44 -06:00 committed by Aiden Cline
parent 270505b0be
commit 78046d06e1
1 changed files with 17 additions and 5 deletions

View File

@ -22,16 +22,28 @@ export function createAutoScroll(options: AutoScrollOptions) {
function scrollToBottom() {
if (!scrollRef || store.userScrolled || !options.working()) return
setStore("autoScrolled", true)
requestAnimationFrame(() => {
scrollRef?.scrollTo({ top: scrollRef.scrollHeight, behavior: "smooth" })
requestAnimationFrame(() => {
const targetHeight = scrollRef.scrollHeight
scrollRef.scrollTo({ top: targetHeight, behavior: "smooth" })
// Wait for scroll to complete before clearing autoScrolled
const checkScrollComplete = () => {
if (!scrollRef) {
setStore("autoScrolled", false)
return
}
const atBottom = scrollRef.scrollTop + scrollRef.clientHeight >= scrollRef.scrollHeight - 10
const reachedTarget = scrollRef.scrollTop >= targetHeight - scrollRef.clientHeight - 10
if (atBottom || reachedTarget) {
batch(() => {
setStore("lastScrollTop", scrollRef?.scrollTop ?? 0)
setStore("lastScrollHeight", scrollRef?.scrollHeight ?? 0)
setStore("autoScrolled", false)
})
})
})
} else {
requestAnimationFrame(checkScrollComplete)
}
}
requestAnimationFrame(checkScrollComplete)
}
function handleScroll() {