Fix loading bug when opening boosted posts
Changelog-Fixed: Fixed thread loading issue when clicking on boosts Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -101,7 +101,11 @@ class NostrEvent: Codable, Identifiable, CustomStringConvertible, Equatable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
lazy var inner_event: NostrEvent? = {
|
lazy var inner_event: NostrEvent? = {
|
||||||
return event_from_json(dat: self.content)
|
// don't try to deserialize an inner event if we know there won't be one
|
||||||
|
if self.known_kind == .boost {
|
||||||
|
return event_from_json(dat: self.content)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}()
|
}()
|
||||||
|
|
||||||
private var _event_refs: [EventRef]? = nil
|
private var _event_refs: [EventRef]? = nil
|
||||||
@@ -739,3 +743,12 @@ func validate_event(ev: NostrEvent) -> ValidationResult {
|
|||||||
ok = secp256k1_schnorrsig_verify(ctx, &sig64, &raw_id_bytes, raw_id.count, &xonly_pubkey) > 0
|
ok = secp256k1_schnorrsig_verify(ctx, &sig64, &raw_id_bytes, raw_id.count, &xonly_pubkey) > 0
|
||||||
return ok ? .ok : .bad_sig
|
return ok ? .ok : .bad_sig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func inner_event_or_self(ev: NostrEvent) -> NostrEvent {
|
||||||
|
guard let inner_ev = ev.inner_event else {
|
||||||
|
return ev
|
||||||
|
}
|
||||||
|
|
||||||
|
return inner_ev
|
||||||
|
}
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ struct InnerTimelineView: View {
|
|||||||
var body: some View {
|
var body: some View {
|
||||||
LazyVStack {
|
LazyVStack {
|
||||||
ForEach(events, id: \.id) { (ev: NostrEvent) in
|
ForEach(events, id: \.id) { (ev: NostrEvent) in
|
||||||
let tv = ThreadView(thread: ThreadModel(event: ev, pool: damus.pool, privkey: damus.keypair.privkey), damus: damus, is_chatroom: has_hashtag(ev.tags, hashtag: "chat"))
|
let tm = ThreadModel(event: inner_event_or_self(ev: ev), pool: damus.pool, privkey: damus.keypair.privkey)
|
||||||
|
let is_chatroom = has_hashtag(ev.tags, hashtag: "chat")
|
||||||
|
let tv = ThreadView(thread: tm, damus: damus, is_chatroom: is_chatroom)
|
||||||
|
|
||||||
NavigationLink(destination: tv) {
|
NavigationLink(destination: tv) {
|
||||||
EventView(event: ev, highlight: .none, has_action_bar: true, damus: damus, show_friend_icon: show_friend_icon)
|
EventView(event: ev, highlight: .none, has_action_bar: true, damus: damus, show_friend_icon: show_friend_icon)
|
||||||
@@ -80,3 +82,4 @@ struct NavigationLazyView<Content: View>: View {
|
|||||||
build()
|
build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user