Hide duplicate snapshot lines and the turn-end line before a snapshot
This commit is contained in:
+14
-14
@@ -1133,7 +1133,14 @@ struct RowView: View {
|
||||
|
||||
var body: some View {
|
||||
if !row.hidden {
|
||||
content
|
||||
if let seq = row.summarySeq {
|
||||
content
|
||||
.onScrollVisibilityChange(threshold: 0.01) { visible in
|
||||
model.summaryVisible(seq, visible)
|
||||
}
|
||||
} else {
|
||||
content
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1267,19 +1274,12 @@ struct RowView: View {
|
||||
PreBox(text: text)
|
||||
|
||||
case .turnEnd(let error):
|
||||
Group {
|
||||
if let error {
|
||||
Text(error)
|
||||
.font(Fonts.font(11))
|
||||
.foregroundStyle(Palette.danger)
|
||||
} else {
|
||||
Rectangle().fill(Palette.border).frame(height: 1)
|
||||
}
|
||||
}
|
||||
.onScrollVisibilityChange(threshold: 0.01) { visible in
|
||||
if let seq = row.summarySeq {
|
||||
model.summaryVisible(seq, visible)
|
||||
}
|
||||
if let error {
|
||||
Text(error)
|
||||
.font(Fonts.font(11))
|
||||
.foregroundStyle(Palette.danger)
|
||||
} else {
|
||||
Rectangle().fill(Palette.border).frame(height: 1)
|
||||
}
|
||||
|
||||
case .note(let note):
|
||||
|
||||
@@ -518,11 +518,21 @@ final class TranscriptBuilder {
|
||||
if ev.kind == "snapshot.created" {
|
||||
ctx.run = nil
|
||||
let snap = try! decodePayload(ev.payload, as: Snapshot.self)
|
||||
let row = Row(.snapshot(snap), taskId: rowTask)
|
||||
ctx.snapshots[snapKey(snap.n)] = row
|
||||
if ![.answer, .fork, .askHuman].contains(snap.trigger) && sink == nil && own {
|
||||
lastReady = nil
|
||||
}
|
||||
release()
|
||||
let prev = (ctx.handoff?.body ?? sink ?? root).rows.last { !$0.hidden }
|
||||
if let prev, case .snapshot(let p) = prev.kind, p.treeSha == snap.treeSha, prev.taskId == rowTask {
|
||||
ctx.snapshots[snapKey(snap.n)] = prev
|
||||
continue
|
||||
}
|
||||
let row = Row(.snapshot(snap), taskId: rowTask)
|
||||
ctx.snapshots[snapKey(snap.n)] = row
|
||||
if let prev, case .turnEnd(nil) = prev.kind {
|
||||
prev.hidden = true
|
||||
row.summarySeq = prev.summarySeq
|
||||
}
|
||||
put(row)
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user