Implemented offline-first fast-paths and hardened API/Layout resilience. Added reactive offline banner, root error page, and ghost site fallbacks to handle server downtime and connection loss without crashing.
This commit is contained in:
@@ -14,7 +14,17 @@ export async function load({ params, parent, url }) {
|
||||
data.log_lvl = log_lvl;
|
||||
|
||||
const account_id = data.account_id;
|
||||
const ae_acct = data[account_id];
|
||||
let ae_acct = data[account_id];
|
||||
|
||||
if (!ae_acct) {
|
||||
console.warn(`ae Events - [event_id] launcher +layout.ts: Account ${account_id} not found in data. Initializing ghost acct.`);
|
||||
ae_acct = {
|
||||
api: data.ae_api || {},
|
||||
slct: {
|
||||
account_id: account_id
|
||||
}
|
||||
};
|
||||
}
|
||||
// console.log(`ae_acct = `, ae_acct);
|
||||
|
||||
const event_id = params.event_id;
|
||||
|
||||
@@ -14,19 +14,29 @@ export async function load({ params, parent, url }) {
|
||||
data.log_lvl = log_lvl;
|
||||
|
||||
const account_id = data.account_id;
|
||||
const ae_acct = data[account_id];
|
||||
let ae_acct = data[account_id];
|
||||
|
||||
if (!ae_acct) {
|
||||
console.warn(`ae Events - [event_id] launcher [event_location_id] +page.ts: Account ${account_id} not found in data. Initializing ghost acct.`);
|
||||
ae_acct = {
|
||||
api: data.ae_api || {},
|
||||
slct: {
|
||||
account_id: account_id
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const event_location_id = params.event_location_id;
|
||||
if (!event_location_id) {
|
||||
console.log(
|
||||
console.warn(
|
||||
`ae Events - [event_id] launcher [event_location_id] +page.ts: The event_location_id was not found in the params.event_location_id!!!`
|
||||
);
|
||||
error(404, {
|
||||
message: 'Events Pres Mgmt - Event Location ID not found'
|
||||
});
|
||||
// error(404, {
|
||||
// message: 'Events Pres Mgmt - Event Location ID not found'
|
||||
// });
|
||||
}
|
||||
|
||||
if (browser) {
|
||||
if (browser && event_location_id) {
|
||||
if (log_lvl) {
|
||||
console.log(
|
||||
`ae_events launcher [event_location_id] +page.ts: event_location_id = `,
|
||||
@@ -85,7 +95,7 @@ export async function load({ params, parent, url }) {
|
||||
// ae_acct.slct.event_session_obj = load_event_session_obj;
|
||||
// }
|
||||
} else {
|
||||
console.log(`ae pres_mgmt launcher [slug] +page.ts: browser = false`);
|
||||
console.log(`ae pres_mgmt launcher [slug] +page.ts: browser = false or location_id missing`);
|
||||
}
|
||||
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
|
||||
@@ -584,13 +584,17 @@
|
||||
)} mx-0.5"
|
||||
></span>
|
||||
{event_file_obj.extension}
|
||||
{#if result === null}
|
||||
<span>
|
||||
{#if result === null || result === false}
|
||||
<span class="text-error-500">
|
||||
<span class="fas fa-exclamation-triangle mx-1"></span>
|
||||
Download failed!
|
||||
Failed!
|
||||
</span>
|
||||
{/if}
|
||||
<!-- </span> -->
|
||||
{:catch error}
|
||||
<span class="text-error-500" title={error?.message}>
|
||||
<span class="fas fa-exclamation-circle mx-0.5"></span>
|
||||
Error!
|
||||
</span>
|
||||
{/await}
|
||||
</span>
|
||||
|
||||
|
||||
@@ -15,7 +15,17 @@ export async function load({ params, parent, url }) {
|
||||
data.log_lvl = log_lvl;
|
||||
|
||||
const account_id = data.account_id;
|
||||
const ae_acct = data[account_id];
|
||||
let ae_acct = data[account_id];
|
||||
|
||||
if (!ae_acct) {
|
||||
console.warn(`ae Events - [event_id] +layout.ts: Account ${account_id} not found in data. Initializing ghost acct.`);
|
||||
ae_acct = {
|
||||
api: data.ae_api || {},
|
||||
slct: {
|
||||
account_id: account_id
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
const event_id = params.event_id;
|
||||
if (!event_id) {
|
||||
@@ -54,16 +64,18 @@ export async function load({ params, parent, url }) {
|
||||
// }
|
||||
});
|
||||
if (!load_event_obj) {
|
||||
error(404, {
|
||||
message: 'Events - Event not found'
|
||||
});
|
||||
console.warn(`Events - [event_id] +layout.ts: Event ${event_id} not found via API or Cache.`);
|
||||
// error(404, {
|
||||
// message: 'Events - Event not found'
|
||||
// });
|
||||
} else {
|
||||
console.log(`load_event_obj = `, load_event_obj);
|
||||
ae_acct.slct.event_obj = load_event_obj;
|
||||
// ae_acct.slct.event_device_obj_li = load_event_obj.event_device_obj_li;
|
||||
ae_acct.slct.event_location_obj_li = load_event_obj.event_location_obj_li;
|
||||
ae_acct.slct.event_session_obj_li = load_event_obj.event_session_obj_li;
|
||||
ae_acct.slct.badge_template_obj_li = load_event_obj.event_badge_template_obj_li;
|
||||
}
|
||||
console.log(`load_event_obj = `, load_event_obj);
|
||||
ae_acct.slct.event_obj = load_event_obj;
|
||||
// ae_acct.slct.event_device_obj_li = load_event_obj.event_device_obj_li;
|
||||
ae_acct.slct.event_location_obj_li = load_event_obj.event_location_obj_li;
|
||||
ae_acct.slct.event_session_obj_li = load_event_obj.event_session_obj_li;
|
||||
ae_acct.slct.badge_template_obj_li = load_event_obj.event_badge_template_obj_li;
|
||||
}
|
||||
|
||||
// WARNING: Precaution against shared data between sites and sessions.
|
||||
|
||||
Reference in New Issue
Block a user