Skip to content

Commit 3fd6627

Browse files
grichaclaude
andcommitted
Fix scroll-to-bottom with virtualized list
Use virtualizer.scrollToIndex() instead of scrollHeight for initial scroll positioning. With virtualization, scrollHeight doesn't reflect the true content height since only visible items are rendered. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 0df6b55 commit 3fd6627

1 file changed

Lines changed: 2 additions & 4 deletions

File tree

web/src/components/Chat.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,13 +406,11 @@ export function Chat({ workspaceName, sessionId: initialSessionId, onSessionId,
406406
useEffect(() => {
407407
if (containerMounted && messages.length > 0 && !isLoadingHistory) {
408408
const timer = setTimeout(() => {
409-
if (scrollContainerRef.current) {
410-
scrollContainerRef.current.scrollTop = scrollContainerRef.current.scrollHeight
411-
}
409+
virtualizer.scrollToIndex(messages.length - 1, { align: 'end' })
412410
}, 50)
413411
return () => clearTimeout(timer)
414412
}
415-
}, [containerMounted, messages.length, isLoadingHistory])
413+
}, [containerMounted, messages.length, isLoadingHistory, virtualizer])
416414

417415
const finalizeStreaming = useCallback(() => {
418416
const parts = [...streamingPartsRef.current]

0 commit comments

Comments
 (0)