Fix forever-loading hashtag view
Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
@@ -15,7 +15,7 @@ class SearchModel: ObservableObject {
|
|||||||
|
|
||||||
var search: NostrFilter
|
var search: NostrFilter
|
||||||
let profiles_subid = UUID().description
|
let profiles_subid = UUID().description
|
||||||
var listener: Task<Void, Never>? = nil
|
var listener: Task<Void, any Error>? = nil
|
||||||
let limit: UInt32 = 500
|
let limit: UInt32 = 500
|
||||||
|
|
||||||
init(state: DamusState, search: NostrFilter) {
|
init(state: DamusState, search: NostrFilter) {
|
||||||
@@ -42,9 +42,13 @@ class SearchModel: ObservableObject {
|
|||||||
//likes_filter.ids = ref_events.referenced_ids!
|
//likes_filter.ids = ref_events.referenced_ids!
|
||||||
listener?.cancel()
|
listener?.cancel()
|
||||||
listener = Task {
|
listener = Task {
|
||||||
self.loading = true
|
DispatchQueue.main.async {
|
||||||
|
self.loading = true
|
||||||
|
}
|
||||||
print("subscribing to search")
|
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 {
|
switch item {
|
||||||
case .event(let borrow):
|
case .event(let borrow):
|
||||||
try? borrow { ev in
|
try? borrow { ev in
|
||||||
@@ -54,12 +58,15 @@ class SearchModel: ObservableObject {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
case .eose:
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user