perf(events): implement non-blocking SWR pattern and optimize library loaders

- Refactored 'event_session', 'event_presentation', 'event_file', 'event_location', and 'event_presenter' libraries to follow a Stale-While-Revalidate pattern.
- Implemented non-blocking background refreshes to allow instant UI rendering from IndexedDB cache.
- Parallelized nested collection loads (files, presentations) during background tasks to eliminate UI stalls.
- Standardized ID lookups using specific indices (event_location_id, event_id) for reliable local data retrieval.
- Resolved regression where aggressive ID overwriting caused relationship inconsistencies in background loads.
- Fixed reactive access to live queries in 'session_view.svelte' using proper Svelte 5 prefixing.
This commit is contained in:
Scott Idem
2026-01-30 16:04:28 -05:00
parent 3148375eb3
commit 66affb2a0f
8 changed files with 543 additions and 1832 deletions

View File

@@ -1038,7 +1038,7 @@
{/if}
<!-- Using the loading__session_id_status is kind of a hacky way to determine if the session is still loading or not. -->
{#if $events_slct.event_session_id && $lq__event_session_obj && !$events_sess.launcher.loading__session_id_status}
{#if $events_slct.event_session_id && $lq__event_session_obj}
<Launcher_session_view
bind:slct__event_session_id={$events_slct.event_session_id}
{lq__event_session_obj}

View File

@@ -60,7 +60,7 @@
slct__event_presentation_li: null
});
let hover_timer_wait = 2500;
let hover_timer_wait = 750;
let hover_timer: any = $state(null);
$effect(() => {