More consistent scrolling to top behavior
This commit is contained in:
@@ -42,6 +42,10 @@ struct TimelineView: View {
|
||||
var MainContent: some View {
|
||||
ScrollViewReader { scroller in
|
||||
ScrollView {
|
||||
Color.white.opacity(0)
|
||||
.id("startblock")
|
||||
.frame(height: 1)
|
||||
|
||||
InnerTimelineView(events: events, damus: damus, show_friend_icon: show_friend_icon, filter: loading ? { _ in true } : filter)
|
||||
.redacted(reason: loading ? .placeholder : [])
|
||||
.shimmer(loading)
|
||||
@@ -56,13 +60,9 @@ struct TimelineView: View {
|
||||
.buttonStyle(BorderlessButtonStyle())
|
||||
.coordinateSpace(name: "scroll")
|
||||
.onReceive(NotificationCenter.default.publisher(for: .scroll_to_top)) { _ in
|
||||
let delay = events.has_incoming ? 0.1 : 0.0
|
||||
events.flush()
|
||||
guard let event = events.events.filter(self.filter).first else {
|
||||
return
|
||||
}
|
||||
self.events.should_queue = false
|
||||
scroll_to_event(scroller: scroller, id: event.id, delay: delay, animate: true, anchor: .top)
|
||||
scroll_to_event(scroller: scroller, id: "startblock", delay: 0.0, animate: true, anchor: .top)
|
||||
}
|
||||
}
|
||||
.onAppear {
|
||||
|
||||
Reference in New Issue
Block a user