Transcript Incremental Projection
Nucleic-Session: 0FFD007B-0696-4517-9429-129C7B0FD5AC Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -683,9 +683,15 @@ struct TranscriptList: View {
|
||||
}
|
||||
// Coalescing means item count lags event count; key the autoscroll on the raw stream
|
||||
// so every streamed delta keeps the view pinned to the bottom — but only while the
|
||||
// user is already parked there. Scrolling up to read history is never yanked down.
|
||||
// user is already parked there. Scrolling up to read history is never yanked down,
|
||||
// and a finger actively on the transcript is never fought mid-drag (the drag that
|
||||
// takes them past the unfollow threshold flips the gate; until then the native
|
||||
// bottom anchor alone keeps content pinned, without an animated scroll grabbing the
|
||||
// viewport back out of their hand).
|
||||
.onChange(of: events.count) {
|
||||
if isScrolledToBottom { scrollToEnd(proxy, animated: !transcriptSettling) }
|
||||
if isScrolledToBottom, !isUserScrolling {
|
||||
scrollToEnd(proxy, animated: !transcriptSettling)
|
||||
}
|
||||
}
|
||||
// An explicit jump — the chevron or sending a message — always wins. The chevron
|
||||
// itself lives in the parent's chat bar (above the composer), not as an overlay here,
|
||||
|
||||
Reference in New Issue
Block a user