feat(stores): retire events_loc — Svelte 4 persisted store fully replaced

events_loc has been completely removed after migrating all consumers:

- EVENTS_MODULE_TITLE constant replaces $events_loc.title (was always
  the static default 'OSIT\'s Æ Events', never written dynamically)
- events/+layout.svelte: qry__* writes moved to events_sess; stale-deploy
  ver check block removed (store_versions.ts handles this already)
- 3 stale pres_mgmt stragglers fixed: device_obj_li, location_page_menu,
  event_reports_page_menu now use pres_mgmt_loc.current directly
- testing/+page.svelte: missed launcher ref fixed (launcher_loc.current)
- events_loc export, events_local_data_struct, persisted import, and
  AE_EVENTS_LOC_VERSION import all removed from ae_events_stores.ts
- events_loc import cleaned from all consumer files

events_sess (in-memory writable) stays in ae_events_stores.ts unchanged.
store_versions.ts keeps its _check_and_wipe('ae_events_loc') entry to
clean lingering old data from users' browsers.

svelte-check: 0 errors, 0 warnings.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-06-11 16:41:06 -04:00
parent 83c9b9fd4f
commit 573d20e574
33 changed files with 48 additions and 173 deletions

View File

@@ -5,15 +5,11 @@ let log_lvl: number = $state(0);
// *** Import Svelte specific
import { untrack } from 'svelte';
// import { browser } from '$app/environment';
import { goto } from '$app/navigation';
// *** Import other supporting libraries
// import * as icons from '@lucide/svelte';
import {
Brain,
House,
Library,
RefreshCw,
Satellite,
ArrowUp,
ArrowDown
@@ -24,11 +20,9 @@ import type { key_val } from '$lib/stores/ae_stores';
import { ae_loc, ae_sess, ae_api, slct } from '$lib/stores/ae_stores';
import Element_data_store from '$lib/elements/element_data_store.svelte';
import {
events_loc,
EVENTS_MODULE_TITLE,
events_sess,
events_slct,
events_trigger,
events_trig_kv
events_slct
} from '$lib/stores/ae_events_stores';
interface Props {
@@ -42,10 +36,10 @@ let { data, children }: Props = $props();
// Use effects for store initializations to prevent render-phase updates
$effect(() => {
untrack(() => {
$events_loc.qry__enabled = 'enabled';
$events_loc.qry__hidden = 'not_hidden';
$events_loc.qry__limit = 15;
$events_loc.qry__offset = 0;
$events_sess.qry__enabled = 'enabled';
$events_sess.qry__hidden = 'not_hidden';
$events_sess.qry__limit = 15;
$events_sess.qry__offset = 0;
});
});
@@ -132,70 +126,10 @@ function clear_sess() {
<svelte:head>
<title>
&AElig;: Events - {$events_loc.title ?? 'Æ loading...'}
&AElig;: Events - {EVENTS_MODULE_TITLE}
</title>
</svelte:head>
{#if $events_loc?.ver && $events_loc?.ver !== $events_sess?.ver}
<div class="fixed inset-0 z-40 bg-pink-100/80">
<button
type="button"
class="
btn btn-lg preset-tonal-warning hover:preset-filled-success-200-800 border-warning-300 dark:border-warning-700 fixed top-16 right-0
left-0 z-50 m-8
rounded-2xl border-4
p-4 transition-all sm:mx-16
md:mx-32
"
onclick={async () => {
// Clear the IndexedDB
clear_idb();
// // Clear localStorage and sessionStorage
// clear_local();
// // clear_sess();
// alert('The page will now reload. You may need to sign in again.');
// // location.reload();
// // window.location.reload(true);
// goto('/');
localStorage.clear();
sessionStorage.clear();
alert(
'The page will now reload. You may need to sign in again.'
);
await goto('/', { invalidateAll: true });
location.reload();
}}
title="A new version of One Sky IT's Aether Events module is available. Click to reload the page and use the latest version.">
<RefreshCw
size="1em"
class="shrink-0 animate-spin"
aria-hidden="true" />
<span class="m-4 text-wrap sm:mx-8">
New Events Module Version Available!<br />
Click to Reload<br />
<div class="text-base italic">
You may need to sign in again.
</div>
</span>
<RefreshCw
size="1em"
class="shrink-0 animate-spin"
aria-hidden="true" />
<!-- <span class="text-xs">
$events_loc.ver=${$events_loc?.ver}<br>
$events_sess.ver=${$events_sess?.ver}
</span> -->
</button>
</div>
{/if}
<!-- WARNING: Add these when ready to better enabled dark mode! -->
<!-- bg-gray-50 dark:bg-gray-900 -->
<!-- text-gray-800 dark:text-gray-200 -->