Session View Animation

Nucleic-Session: A8FFA1A6-443F-444A-A735-C53958D7E570
Co-authored-by: Nucleic <[email protected]>
This commit is contained in:
2026-07-06 18:02:26 -07:00
co-authored by Nucleic
parent 501eb2d2ad
commit 19ae2b0293
@@ -651,6 +651,12 @@ struct TranscriptList: View {
// so it sits over the composer instead of behind the floating bar; a tap bumps this // 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. // same request, and following resumes once the geometry reader sees the bottom.
.onChange(of: scrollToBottomRequest) { scrollToEnd(proxy) } .onChange(of: scrollToBottomRequest) { 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
// existing row (which don't change the count) never re-arm it. `items.count` is O(1).
.onChange(of: items.count, initial: true) { _, _ in prewarmMarkdown() }
.onDisappear { prewarmTask?.cancel() }
} }
} }