- 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.
54 lines
1.4 KiB
TypeScript
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;
|
|
}
|