Transcript Incremental Projection
Nucleic-Session: 0FFD007B-0696-4517-9429-129C7B0FD5AC Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -707,11 +707,15 @@ struct TranscriptList: View {
|
|||||||
// 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
|
// 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
|
// 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
|
// bottom anchor alone keeps content pinned, without a scroll grabbing the viewport
|
||||||
// viewport back out of their hand).
|
// back out of their hand). Never animated: while pinned, the bottom anchor provides
|
||||||
|
// the visual continuity and this call only closes the last few points — but a
|
||||||
|
// session still *opening* keeps receiving history merges (cached transcript,
|
||||||
|
// reconnect backfill) after the settle window closes, and animating those rode the
|
||||||
|
// viewport visibly down through the whole transcript instead of landing at the end.
|
||||||
.onChange(of: events.count) {
|
.onChange(of: events.count) {
|
||||||
if isScrolledToBottom, !isUserScrolling {
|
if isScrolledToBottom, !isUserScrolling {
|
||||||
scrollToEnd(proxy, animated: !transcriptSettling)
|
scrollToEnd(proxy, animated: false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// An explicit jump — the chevron or sending a message — always wins, and it *is* the
|
// An explicit jump — the chevron or sending a message — always wins, and it *is* the
|
||||||
|
|||||||
Reference in New Issue
Block a user