Improve loading speeds for home timeline and universe view

Signed-off-by: Daniel D’Aquino <daniel@daquino.me>
This commit is contained in:
Daniel D’Aquino
2025-09-21 11:29:46 -07:00
parent a09e22df24
commit 798f9ec7b4
2 changed files with 17 additions and 11 deletions

View File

@@ -744,7 +744,7 @@ struct ContentView: View {
}
damus_state.nostrNetwork.connect()
// TODO: Move this to a better spot. Not sure what is the best signal to listen to for sending initial filters
DispatchQueue.main.asyncAfter(deadline: .now() + 3, execute: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
self.home.send_initial_filters()
})
}

View File

@@ -62,16 +62,22 @@ class SearchHomeModel: ObservableObject {
var follow_list_filter = NostrFilter(kinds: [.follow_list])
follow_list_filter.until = UInt32(Date.now.timeIntervalSince1970)
for await noteLender in damus_state.nostrNetwork.reader.streamExistingEvents(filters: [follow_list_filter], to: to_relays) {
await noteLender.justUseACopy({ await self.handleFollowPackEvent($0) })
}
for await noteLender in damus_state.nostrNetwork.reader.streamExistingEvents(filters: [get_base_filter()], to: to_relays) {
await noteLender.justUseACopy({ await self.handleEvent($0) })
}
DispatchQueue.main.async {
self.loading = false
for await item in damus_state.nostrNetwork.reader.advancedStream(filters: [get_base_filter(), follow_list_filter], to: to_relays) {
switch item {
case .event(lender: let lender):
await lender.justUseACopy({ event in
await self.handleFollowPackEvent(event)
await self.handleEvent(event)
})
case .eose:
break
case .ndbEose:
DispatchQueue.main.async {
self.loading = false
}
case .networkEose:
break
}
}
}