diff options
| author | Adam <[email protected]> | 2026-03-25 06:25:57 -0500 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-03-25 06:25:57 -0500 |
| commit | 1041ae91d1a39401fe099747e3bc093bdcdaa079 (patch) | |
| tree | ca5515910ad01f76639577ef8e3a991b644a5ade /packages/app/src/pages/session/use-session-hash-scroll.ts | |
| parent | 898456a25cf2edbfc4ae4961b37424f633419dd6 (diff) | |
| download | opencode-1041ae91d1a39401fe099747e3bc093bdcdaa079.tar.gz opencode-1041ae91d1a39401fe099747e3bc093bdcdaa079.zip | |
Reapply "fix(app): startup efficiency"
This reverts commit 898456a25cf2edbfc4ae4961b37424f633419dd6.
Diffstat (limited to 'packages/app/src/pages/session/use-session-hash-scroll.ts')
| -rw-r--r-- | packages/app/src/pages/session/use-session-hash-scroll.ts | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/app/src/pages/session/use-session-hash-scroll.ts b/packages/app/src/pages/session/use-session-hash-scroll.ts index 5fadb1f22..c582749d1 100644 --- a/packages/app/src/pages/session/use-session-hash-scroll.ts +++ b/packages/app/src/pages/session/use-session-hash-scroll.ts @@ -8,6 +8,9 @@ export const useSessionHashScroll = (input: { sessionID: () => string | undefined messagesReady: () => boolean visibleUserMessages: () => UserMessage[] + historyMore: () => boolean + historyLoading: () => boolean + loadMore: (sessionID: string) => Promise<void> turnStart: () => number currentMessageId: () => string | undefined pendingMessage: () => string | undefined @@ -181,6 +184,21 @@ export const useSessionHashScroll = (input: { queue(() => scrollToMessage(msg, "auto")) }) + createEffect(() => { + const sessionID = input.sessionID() + if (!sessionID || !input.messagesReady()) return + + visibleUserMessages() + + let targetId = input.pendingMessage() + if (!targetId && !clearing) targetId = messageIdFromHash(location.hash) + if (!targetId) return + if (messageById().has(targetId)) return + if (!input.historyMore() || input.historyLoading()) return + + void input.loadMore(sessionID) + }) + onMount(() => { if (typeof window !== "undefined" && "scrollRestoration" in window.history) { window.history.scrollRestoration = "manual" |
