Files
OSIT-AE-App-Svelte/src/routes/events/+page.ts
Scott Idem 9655604d86 perf(events): refactor load functions to be non-blocking
- Eliminated blocking 'await' calls in '+page.ts' for main Events, Session, Location, and Presenter views.
- Implemented Stale-While-Revalidate (SWR) pattern: pages now render instantly using cached IndexedDB data while API refreshes run in the background.
- Removed expensive sequential loops in load functions, allowing the reactive UI (via LiveQuery) to handle data arrival as background tasks complete.
2026-01-27 12:25:35 -05:00

54 lines
1.4 KiB
TypeScript

/** @type {import('./$types').PageLoad} */
import { error } from '@sveltejs/kit';
import { browser } from '$app/environment';
import { events_func } from '$lib/ae_events_functions';
export async function load({ parent }) {
const log_lvl: number = 0;
const parent_data = await parent();
const account_id = parent_data.account_id;
const ae_acct = parent_data[account_id];
const event_id = ae_acct.slct.event_id; // From root +layout.ts
if (!event_id) {
if (log_lvl) {
console.log(`INFO: events +layout.ts: The event_id was not found in the parent_data.`);
}
// return false;
}
if (browser) {
if (log_lvl) console.log(`ae_events +page.ts (Non-Blocking Refresh)`);
if (event_id) {
// Refresh the specific selected event
events_func.load_ae_obj_id__event({
api_cfg: ae_acct.api,
event_id: event_id,
log_lvl: log_lvl
});
}
// Refresh the list of events for the account
events_func.load_ae_obj_li__event({
api_cfg: ae_acct.api,
for_obj_type: 'account',
for_obj_id: account_id,
inc_session_li: true,
hidden: 'all', // 'not_hidden'
enabled: 'enabled',
limit: 25,
try_cache: true,
log_lvl: log_lvl
});
}
parent_data[account_id] = ae_acct;
return parent_data;
}