mirror of
https://github.com/dergigi/boris.git
synced 2026-02-20 14:34:29 +01:00
perf: check eventStore before setting loading state for instant cached event display
- Synchronously check eventStore first before setting loading state - If event is cached, display it immediately without loading spinner - Only set loading state if event not found in cache - Provides instant display of events that are already hydrated - Improves perceived performance when navigating to bookmarked events
This commit is contained in:
@@ -51,22 +51,26 @@ export function useEventLoader({
|
||||
if (!eventId) return
|
||||
|
||||
console.log('🔍 useEventLoader: Loading event:', eventId)
|
||||
|
||||
// Try to get from event store first - do this synchronously before setting loading state
|
||||
if (eventStore) {
|
||||
const cachedEvent = eventStore.getEvent(eventId)
|
||||
if (cachedEvent) {
|
||||
console.log('✅ useEventLoader: Found cached event (instant load):', cachedEvent)
|
||||
displayEvent(cachedEvent)
|
||||
setReaderLoading(false)
|
||||
setIsCollapsed(false)
|
||||
setSelectedUrl(`nostr:${eventId}`)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Event not in cache, now set loading state and fetch from relays
|
||||
setReaderLoading(true)
|
||||
setReaderContent(undefined)
|
||||
setSelectedUrl(`nostr:${eventId}`)
|
||||
setIsCollapsed(false)
|
||||
|
||||
// Try to get from event store first
|
||||
if (eventStore) {
|
||||
const cachedEvent = eventStore.getEvent(eventId)
|
||||
if (cachedEvent) {
|
||||
console.log('✅ useEventLoader: Found cached event:', cachedEvent)
|
||||
displayEvent(cachedEvent)
|
||||
setReaderLoading(false)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise fetch from relays
|
||||
if (!relayPool) {
|
||||
console.log('❌ useEventLoader: No relay pool available')
|
||||
|
||||
Reference in New Issue
Block a user