Optimize json processing and preloading
- Preload events when added to the EventHolder queue - Remove relative time formatting from preloader. Just do it when event appears - Process incoming json in a background queue by default Changelog-Fixed: Fix wrong relative times on events Changelog-Changed: Preload events when they are queued
This commit is contained in:
@@ -13,6 +13,7 @@ class EventHolder: ObservableObject, ScrollQueue {
|
||||
@Published var events: [NostrEvent]
|
||||
@Published var incoming: [NostrEvent]
|
||||
var should_queue: Bool
|
||||
var on_queue: ((NostrEvent) -> Void)?
|
||||
|
||||
func set_should_queue(_ val: Bool) {
|
||||
self.should_queue = val
|
||||
@@ -35,6 +36,15 @@ class EventHolder: ObservableObject, ScrollQueue {
|
||||
self.events = []
|
||||
self.incoming = []
|
||||
self.has_event = Set()
|
||||
self.on_queue = nil
|
||||
}
|
||||
|
||||
init(on_queue: @escaping (NostrEvent) -> ()) {
|
||||
self.should_queue = false
|
||||
self.events = []
|
||||
self.incoming = []
|
||||
self.has_event = Set()
|
||||
self.on_queue = on_queue
|
||||
}
|
||||
|
||||
init(events: [NostrEvent], incoming: [NostrEvent]) {
|
||||
@@ -42,6 +52,7 @@ class EventHolder: ObservableObject, ScrollQueue {
|
||||
self.events = events
|
||||
self.incoming = incoming
|
||||
self.has_event = Set()
|
||||
self.on_queue = nil
|
||||
}
|
||||
|
||||
func filter(_ isIncluded: (NostrEvent) -> Bool) {
|
||||
@@ -76,6 +87,8 @@ class EventHolder: ObservableObject, ScrollQueue {
|
||||
return false
|
||||
}
|
||||
|
||||
on_queue?(ev)
|
||||
|
||||
has_event.insert(ev.id)
|
||||
|
||||
incoming.append(ev)
|
||||
|
||||
Reference in New Issue
Block a user