scroll to top of attention on switch
This commit is contained in:
@@ -751,22 +751,27 @@ private struct TranscriptScroll: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
let running = model.running
|
let running = model.running
|
||||||
ScrollView {
|
ScrollView {
|
||||||
VStack(alignment: .leading, spacing: 12) {
|
VStack(alignment: .leading, spacing: 0) {
|
||||||
if model.key == nil {
|
if model.key == nil {
|
||||||
Muted(text: model.empty)
|
Muted(text: model.empty)
|
||||||
|
.padding(.top, 12)
|
||||||
} else {
|
} else {
|
||||||
if model.loading {
|
if model.loading {
|
||||||
Muted(text: "loading…")
|
Muted(text: "loading…")
|
||||||
|
.padding(.top, 12)
|
||||||
}
|
}
|
||||||
if model.hasOlder || model.older != nil {
|
if model.hasOlder || model.older != nil {
|
||||||
Muted(text: "loading earlier…")
|
Muted(text: "loading earlier…")
|
||||||
.opacity(model.fetching || model.older != nil ? 1 : 0)
|
.opacity(model.fetching || model.older != nil ? 1 : 0)
|
||||||
|
.padding(.top, 12)
|
||||||
}
|
}
|
||||||
ForEach(model.builder.root.rows) { row in
|
ForEach(model.builder.root.rows.filter { !$0.hidden }) { row in
|
||||||
RowView(row: row, model: model, nested: false)
|
RowView(row: row, model: model, nested: false)
|
||||||
|
.padding(.top, 12)
|
||||||
}
|
}
|
||||||
ForEach(model.builder.pending) { p in
|
ForEach(model.builder.pending) { p in
|
||||||
PendingView(pending: p, model: model)
|
PendingView(pending: p, model: model)
|
||||||
|
.padding(.top, 12)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -778,7 +783,8 @@ private struct TranscriptScroll: View {
|
|||||||
.offset(y: 8)
|
.offset(y: 8)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.padding(16)
|
.padding([.horizontal, .bottom], 16)
|
||||||
|
.padding(.top, 4)
|
||||||
}
|
}
|
||||||
.scrollPosition($position)
|
.scrollPosition($position)
|
||||||
.defaultScrollAnchor(.bottom)
|
.defaultScrollAnchor(.bottom)
|
||||||
@@ -815,7 +821,7 @@ private struct TranscriptScroll: View {
|
|||||||
model.prependOlder()
|
model.prependOlder()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onChange(of: model.held) { _, id in
|
.onChange(of: model.held, initial: true) { _, id in
|
||||||
if !model.stuck || scrolling {
|
if !model.stuck || scrolling {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user