diff --git a/src/lib/stores/ae_events_stores.ts b/src/lib/stores/ae_events_stores.ts index 13bfa285..3bbd6819 100644 --- a/src/lib/stores/ae_events_stores.ts +++ b/src/lib/stores/ae_events_stores.ts @@ -9,10 +9,7 @@ import type { Writable } from 'svelte/store'; import type { key_val } from '$lib/stores/ae_stores'; import { badges_sess_defaults } from '$lib/stores/ae_events_stores__badges_defaults'; -import { - launcher_loc_defaults, - launcher_sess_defaults -} from '$lib/stores/ae_events_stores__launcher_defaults'; +import { launcher_sess_defaults } from '$lib/stores/ae_events_stores__launcher_defaults'; import { leads_sess_defaults } from '$lib/stores/ae_events_stores__leads_defaults'; import { pres_mgmt_sess_defaults } from '$lib/stores/ae_events_stores__pres_mgmt_defaults'; @@ -63,8 +60,7 @@ const events_local_data_struct: key_val = { }, // Event Presentation Launcher — see ae_events_stores__launcher_defaults.ts - // badges, leads, pres_mgmt have been promoted to their own PersistedState stores. - launcher: launcher_loc_defaults + // badges, leads, pres_mgmt, launcher have all been promoted to their own PersistedState stores. }; export const events_loc: Writable = persisted( diff --git a/src/lib/stores/ae_events_stores__launcher.svelte.ts b/src/lib/stores/ae_events_stores__launcher.svelte.ts new file mode 100644 index 00000000..3d788e17 --- /dev/null +++ b/src/lib/stores/ae_events_stores__launcher.svelte.ts @@ -0,0 +1,9 @@ +import { PersistedState } from 'runed'; +import { launcher_loc_defaults } from './ae_events_stores__launcher_defaults'; + +export const launcher_loc = new PersistedState('ae_launcher_loc', launcher_loc_defaults, { + serializer: { + serialize: JSON.stringify, + deserialize: (raw: string) => ({ ...launcher_loc_defaults, ...JSON.parse(raw) }) + } +}); diff --git a/src/routes/events/[event_id]/(launcher)/+layout.svelte b/src/routes/events/[event_id]/(launcher)/+layout.svelte index 3995eea8..dd8980f4 100644 --- a/src/routes/events/[event_id]/(launcher)/+layout.svelte +++ b/src/routes/events/[event_id]/(launcher)/+layout.svelte @@ -5,7 +5,7 @@ * Ensures background sync runs globally regardless of active tab. */ import { ae_loc } from '$lib/stores/ae_stores'; -import { events_loc } from '$lib/stores/ae_events_stores'; +import { launcher_loc } from '$lib/stores/ae_events_stores__launcher.svelte'; import Launcher_Background_Sync from './launcher_background_sync.svelte'; interface Props { @@ -20,8 +20,8 @@ let { children }: Props = $props(); // design (default / onsite / native) — browser sessions are unaffected because // is_native is only ever true inside the Electron shell. $effect(() => { - if ($ae_loc.is_native && $events_loc.launcher.app_mode !== 'native') { - $events_loc.launcher.app_mode = 'native'; + if ($ae_loc.is_native && launcher_loc.current.app_mode !== 'native') { + launcher_loc.current.app_mode = 'native'; } }); diff --git a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_app_modes.svelte b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_app_modes.svelte index 09d81cc3..166b25e3 100644 --- a/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_app_modes.svelte +++ b/src/routes/events/[event_id]/(launcher)/cfg_components/launcher_cfg_app_modes.svelte @@ -1,6 +1,7 @@