Transcript Incremental Projection
Nucleic-Session: 0FFD007B-0696-4517-9429-129C7B0FD5AC Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
@@ -617,6 +617,16 @@ struct TranscriptList: View {
|
||||
scrollPhase == .interacting || scrollPhase == .decelerating
|
||||
}
|
||||
|
||||
/// True from an explicit jump (chevron / send) until the scroll actually reaches the bottom.
|
||||
/// While set, the unfollow branch is suppressed entirely: phase changes and geometry
|
||||
/// emissions are delivered on separate callbacks with no ordering guarantee, so a stopping
|
||||
/// fling could emit one last far-from-bottom reading whose *recorded* phase was still
|
||||
/// user-driven (`.decelerating`) — landing after the tap's "follow again" and disengaging it,
|
||||
/// which left the chevron up until a second tap. The latch outlives any stale emission and
|
||||
/// clears on arrival at the bottom, or the moment the user genuinely grabs the transcript
|
||||
/// again (`.interacting`), so a mid-jump scroll-away still works.
|
||||
@State private var jumpingToBottom = false
|
||||
|
||||
var body: some View {
|
||||
ScrollViewReader { proxy in
|
||||
ScrollView {
|
||||
|
||||
Reference in New Issue
Block a user