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