Transcript Incremental Projection
Nucleic-Session: 0FFD007B-0696-4517-9429-129C7B0FD5AC Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -705,11 +705,18 @@ struct TranscriptList: View {
|
||||
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,
|
||||
// so it sits over the composer instead of behind the floating bar; a tap bumps this
|
||||
// same request, and following resumes once the geometry reader sees the bottom.
|
||||
.onChange(of: scrollToBottomRequest) { scrollToEnd(proxy) }
|
||||
// An explicit jump — the chevron or sending a message — always wins, and it *is* the
|
||||
// user saying "follow again": re-engage the gate directly rather than waiting for the
|
||||
// geometry to confirm. The animated scroll can come to rest a few points short of the
|
||||
// follow threshold (content padding, inset rounding), which sat inside the hysteresis
|
||||
// band — following never re-engaged and the chevron lingered until the user manually
|
||||
// scrolled the last few points. Setting the gate here hides the chevron immediately
|
||||
// and hands pinning back to the bottom anchor; a later real scroll-up still
|
||||
// disengages it as usual.
|
||||
.onChange(of: scrollToBottomRequest) {
|
||||
isScrolledToBottom = true
|
||||
scrollToEnd(proxy)
|
||||
}
|
||||
// Warm the Markdown parse caches off the main thread whenever the row set grows —
|
||||
// `initial: true` fires it for the batch that lands on open (the expensive case), and
|
||||
// each later new row tops it up. Keyed on the row *count*, so streaming deltas into an
|
||||
|
||||
Reference in New Issue
Block a user