Pres mgmt: migrate session liveQueries to $derived.by() pattern

Replace $derived(liveQuery(...)) with $derived.by(() => { const id = ...; return liveQuery(...) })
for lq__event_presenter_obj and lq__auth__event_presenter_obj in the
session page.

$derived.by() captures only the specific ID at derivation time, so
unrelated store changes do not recreate the observable. Plain $derived
closes over the entire $events_slct store object, causing unnecessary
observable recreation on any store mutation.
This commit is contained in:
Scott Idem
2026-03-10 14:21:51 -04:00
parent 46c2d2da12
commit 3f57077a8b

View File

@@ -6,7 +6,7 @@
} }
let { data }: Props = $props(); let { data }: Props = $props();
let log_lvl: number = $state(1); let log_lvl: number = $state(0);
// Imports // Imports
import { Modal } from 'flowbite-svelte'; import { Modal } from 'flowbite-svelte';
@@ -68,20 +68,23 @@
liveQuery(async () => await db_events.event.get(url_event_id)) liveQuery(async () => await db_events.event.get(url_event_id))
); );
let lq__event_presenter_obj = $derived( // $derived.by: capture only the specific ID so that unrelated store changes
liveQuery(async () => { // don't needlessly recreate the liveQuery observable.
if (!$events_slct.event_presenter_id) return null; let lq__event_presenter_obj = $derived.by(() => {
return await db_events.presenter.get($events_slct.event_presenter_id); const id = $events_slct.event_presenter_id;
}) return liveQuery(async () => {
); if (!id) return null;
return await db_events.presenter.get(id);
});
});
let lq__auth__event_presenter_obj = $derived( let lq__auth__event_presenter_obj = $derived.by(() => {
liveQuery(async () => { const pid = $events_loc.auth__person?.presenter_id;
const pid = $events_loc.auth__person?.presenter_id; return liveQuery(async () => {
if (!pid) return null; if (!pid) return null;
return await db_events.presenter.get(pid); return await db_events.presenter.get(pid);
}) });
); });
if (!$events_loc.pres_mgmt) $events_loc.pres_mgmt = {}; if (!$events_loc.pres_mgmt) $events_loc.pres_mgmt = {};
if (!$events_sess.pres_mgmt) $events_sess.pres_mgmt = {}; if (!$events_sess.pres_mgmt) $events_sess.pres_mgmt = {};