global player pt. 3 persistence shenanigans
This commit is contained in:
@@ -154,12 +154,19 @@ const snapshot = $derived<PlayerSnapshot>({
|
||||
uiOpen,
|
||||
});
|
||||
|
||||
/** Persist on changes (best effort, throttled). */
|
||||
/**
|
||||
* Persistence
|
||||
*
|
||||
* NOTE: Module-level `$effect` is not allowed (it becomes an "orphaned effect").
|
||||
* Instead, the GlobalPlayer component (or any single always-mounted component)
|
||||
* should call `schedulePersistNow()` inside its own `$effect`.
|
||||
*/
|
||||
const schedulePersist = createPersistScheduler(250);
|
||||
$effect(() => {
|
||||
|
||||
export function schedulePersistNow(): void {
|
||||
if (!browser) return;
|
||||
schedulePersist(persistableState());
|
||||
});
|
||||
}
|
||||
|
||||
/** --- Public reads --- */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user