damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit f8dc9f42dd49171998260dcb2aabcca6f5a6fe89
parent 8964a5941e2e69707ab9bc22265528270eff2c7d
Author: William Casarin <jb55@jb55.com>
Date:   Mon, 26 Dec 2022 07:37:42 -0800

Fix profile and event loading in global view

Changelog-Fixed: Fix profile and event loading in global view

Diffstat:
Mdamus/Nostr/RelayPool.swift | 17+++++++++++++----
Mdamus/Views/SearchHomeView.swift | 2--
2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/damus/Nostr/RelayPool.swift b/damus/Nostr/RelayPool.swift @@ -41,12 +41,19 @@ class RelayPool { } func remove_handler(sub_id: String) { - handlers = handlers.filter { $0.sub_id != sub_id } + self.handlers = handlers.filter { $0.sub_id != sub_id } + print("removing \(sub_id) handler, current: \(handlers.count)") } func register_handler(sub_id: String, handler: @escaping (String, NostrConnectionEvent) -> ()) { - + for handler in handlers { + // don't add duplicate handlers + if handler.sub_id == sub_id { + return + } + } self.handlers.append(RelayHandler(sub_id: sub_id, callback: handler)) + print("registering \(sub_id) handler, current: \(self.handlers.count)") } func remove_relay(_ relay_id: String) { @@ -125,8 +132,10 @@ class RelayPool { } func unsubscribe(sub_id: String, to: [String]? = nil) { - self.remove_handler(sub_id: sub_id) - self.send(.unsubscribe(sub_id)) + if to == nil { + self.remove_handler(sub_id: sub_id) + } + self.send(.unsubscribe(sub_id), to: to) } func subscribe(sub_id: String, filters: [NostrFilter], handler: @escaping (String, NostrConnectionEvent) -> ()) { diff --git a/damus/Views/SearchHomeView.swift b/damus/Views/SearchHomeView.swift @@ -85,8 +85,6 @@ struct SearchHomeView: View { print("search change 1") } .onAppear { - // TODO: This will always be empty when switching between tabs - // We'll need to store these in if model.events.isEmpty { model.subscribe() }