mirror of
git://jb55.com/damus
synced 2024-09-18 19:23:49 +00:00
scroll to note in thread
Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
parent
f2631bd086
commit
41911908e7
@ -54,7 +54,7 @@ struct ContentView: View {
|
||||
.navigationBarTitle("Note")
|
||||
.environmentObject(profiles)
|
||||
NavigationLink(destination: evdet) {
|
||||
EventView(event: ev, highlighted: false)
|
||||
EventView(event: ev, highlighted: false, has_action_bar: true)
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
|
@ -61,29 +61,40 @@ struct EventDetailView: View {
|
||||
}
|
||||
|
||||
var body: some View {
|
||||
ScrollView {
|
||||
ForEach(events, id: \.id) { ev in
|
||||
if ev.id == event.id {
|
||||
EventView(event: ev, highlighted: ev.id == event.id)
|
||||
} else {
|
||||
let evdet = EventDetailView(event: ev, pool: pool)
|
||||
.navigationBarTitle("Note")
|
||||
.environmentObject(profiles)
|
||||
|
||||
NavigationLink(destination: evdet) {
|
||||
EventView(event: ev, highlighted: ev.id == event.id)
|
||||
ScrollViewReader { proxy in
|
||||
ScrollView {
|
||||
ForEach(events, id: \.id) { ev in
|
||||
let is_active_id = ev.id == event.id
|
||||
if is_active_id {
|
||||
EventView(event: ev, highlighted: is_active_id, has_action_bar: true)
|
||||
.onAppear() {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
|
||||
withAnimation {
|
||||
proxy.scrollTo(event.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let evdet = EventDetailView(event: ev, pool: pool)
|
||||
.navigationBarTitle("Note")
|
||||
.environmentObject(profiles)
|
||||
|
||||
NavigationLink(destination: evdet) {
|
||||
EventView(event: ev, highlighted: is_active_id, has_action_bar: true)
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
.buttonStyle(PlainButtonStyle())
|
||||
}
|
||||
}
|
||||
}
|
||||
.padding()
|
||||
.onDisappear() {
|
||||
unsubscribe_to_thread()
|
||||
}
|
||||
.onAppear() {
|
||||
self.add_event(event)
|
||||
subscribe_to_thread()
|
||||
.padding()
|
||||
.onDisappear() {
|
||||
unsubscribe_to_thread()
|
||||
}
|
||||
.onAppear() {
|
||||
self.add_event(event)
|
||||
subscribe_to_thread()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ import CachedAsyncImage
|
||||
struct EventView: View {
|
||||
let event: NostrEvent
|
||||
let highlighted: Bool
|
||||
let has_action_bar: Bool
|
||||
|
||||
@EnvironmentObject var profiles: Profiles
|
||||
|
||||
@ -41,12 +42,15 @@ struct EventView: View {
|
||||
|
||||
Spacer()
|
||||
|
||||
EventActionBar(event: event, profiles: profiles)
|
||||
if has_action_bar {
|
||||
EventActionBar(event: event)
|
||||
}
|
||||
|
||||
Divider()
|
||||
.padding([.top], 4)
|
||||
}
|
||||
}
|
||||
.id(event.id)
|
||||
.frame(minHeight: PFP_SIZE)
|
||||
.padding([.bottom], 4)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user