Chat panel follows its tail by scrolling its own body (SidePanel body gets data-slot side-panel-body) instead of scrollIntoView, which scrolls every ancestor
This commit is contained in:
@@ -179,7 +179,10 @@ export function ChatPanel() {
|
||||
const tailLength = tail && "text" in tail ? tail.text.length : 0
|
||||
// biome-ignore lint/correctness/useExhaustiveDependencies: scroll when the list or a streamed answer grows, not on every render.
|
||||
useEffect(() => {
|
||||
bottom.current?.scrollIntoView({ block: "end" })
|
||||
// Only the panel's body moves: `scrollIntoView` would scroll every
|
||||
// ancestor too, which is how the logs panel slid the code editor away.
|
||||
const body = bottom.current?.closest("[data-slot=side-panel-body]")
|
||||
body?.scrollTo({ top: body.scrollHeight })
|
||||
}, [shown.length, tailLength, waiting])
|
||||
|
||||
const send = async () => {
|
||||
|
||||
Reference in New Issue
Block a user