Fix forever-loading hashtag view

Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
Daniel D’Aquino
2025-09-05 16:39:34 -07:00
parent 7eb759a8a0
commit 9bcee298d4

View File

@@ -15,7 +15,7 @@ class SearchModel: ObservableObject {
var search: NostrFilter
let profiles_subid = UUID().description
var listener: Task<Void, Never>? = nil
var listener: Task<Void, any Error>? = nil
let limit: UInt32 = 500
init(state: DamusState, search: NostrFilter) {
@@ -42,9 +42,13 @@ class SearchModel: ObservableObject {
//likes_filter.ids = ref_events.referenced_ids!
listener?.cancel()
listener = Task {
self.loading = true
DispatchQueue.main.async {
self.loading = true
}
print("subscribing to search")
for await item in await state.nostrNetwork.reader.subscribe(filters: [search]) {
try Task.checkCancellation()
outerLoop: for await item in await state.nostrNetwork.reader.subscribe(filters: [search]) {
try Task.checkCancellation()
switch item {
case .event(let borrow):
try? borrow { ev in
@@ -54,12 +58,15 @@ class SearchModel: ObservableObject {
}
}
case .eose:
break
break outerLoop
}
guard let txn = NdbTxn(ndb: state.ndb) else { return }
load_profiles(context: "search", load: .from_events(self.events.all_events), damus_state: state, txn: txn)
}
self.loading = false
guard let txn = NdbTxn(ndb: state.ndb) else { return }
try Task.checkCancellation()
load_profiles(context: "search", load: .from_events(self.events.all_events), damus_state: state, txn: txn)
DispatchQueue.main.async {
self.loading = false
}
}
}