Better handling of the IDB refreshes and updates.
This commit is contained in:
@@ -48,12 +48,13 @@ export let ae_snip = string_snippets;
|
|||||||
|
|
||||||
// Set the version for the app data. Changing this should force a notification and ask the user to clear and reload the page.
|
// Set the version for the app data. Changing this should force a notification and ask the user to clear and reload the page.
|
||||||
let ver = '2024-08-21_1736';
|
let ver = '2024-08-21_1736';
|
||||||
let ver_idb = '2024-08-21_1735';
|
let ver_idb = '2024-10-16_1540';
|
||||||
|
|
||||||
// *** BEGIN *** Longer-term app data. This should be stored to local storage.
|
// *** BEGIN *** Longer-term app data. This should be stored to local storage.
|
||||||
export let ae_app_local_data_struct: key_val = {
|
export let ae_app_local_data_struct: key_val = {
|
||||||
'ver': '2024-08-16_1821',
|
last_idb_reload: null,
|
||||||
'ver_idb': '2024-08-16_1826', // Clear if date IndexedDB version
|
ver: '2024-10-16_1540',
|
||||||
|
ver_idb: '2024-10-16_1540', // Clear if date IndexedDB version
|
||||||
name: 'Aether - App Hub (SvelteKit 2.x Svelte 4.x)',
|
name: 'Aether - App Hub (SvelteKit 2.x Svelte 4.x)',
|
||||||
theme: 'light',
|
theme: 'light',
|
||||||
iframe: false,
|
iframe: false,
|
||||||
@@ -198,7 +199,7 @@ export let ae_loc: Writable<key_val> = localStorageStore('ae_loc', ae_app_local_
|
|||||||
|
|
||||||
// *** BEGIN *** Temporary app data. This should be stored to session storage.
|
// *** BEGIN *** Temporary app data. This should be stored to session storage.
|
||||||
export let ae_app_session_data_struct: key_val = {
|
export let ae_app_session_data_struct: key_val = {
|
||||||
'ver': '2024-02-27_13',
|
'ver': '2024-10-16_1540',
|
||||||
// ver_idb: ver_idb,
|
// ver_idb: ver_idb,
|
||||||
log_lvl: 0,
|
log_lvl: 0,
|
||||||
|
|
||||||
|
|||||||
@@ -641,7 +641,7 @@ export class MySubClassedDexie extends Dexie {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super('ae_events_db');
|
super('ae_events_db');
|
||||||
this.version(3).stores({
|
this.version(4).stores({
|
||||||
events: `
|
events: `
|
||||||
id, event_id, event_id_random,
|
id, event_id, event_id_random,
|
||||||
code,
|
code,
|
||||||
|
|||||||
@@ -94,6 +94,58 @@ $slct = {
|
|||||||
}
|
}
|
||||||
// console.log(`$slct = `, $slct);
|
// console.log(`$slct = `, $slct);
|
||||||
|
|
||||||
|
// Check if the last reload timestamp for $ae_loc.last_idb_reload is no more than 15 minutes ago.
|
||||||
|
let default_idb_reload_time = 120 * 60 * 1000; // 120 minutes
|
||||||
|
if (!$ae_loc.last_idb_reload) {
|
||||||
|
console.log(`Last reload not found. Need to reset.`);
|
||||||
|
|
||||||
|
// $ae_loc.last_idb_reload = Date.now();
|
||||||
|
if (browser) {
|
||||||
|
$ae_loc.last_idb_reload = Date.now();
|
||||||
|
|
||||||
|
// Clear Indexed DB as well
|
||||||
|
indexedDB.deleteDatabase('ae_archives_db');
|
||||||
|
indexedDB.deleteDatabase('ae_core_db');
|
||||||
|
indexedDB.deleteDatabase('ae_events_db');
|
||||||
|
indexedDB.deleteDatabase('ae_notes_db');
|
||||||
|
indexedDB.deleteDatabase('ae_posts_db');
|
||||||
|
|
||||||
|
// localStorage.removeItem('ae_loc');
|
||||||
|
// localStorage.removeItem('events_loc');
|
||||||
|
|
||||||
|
// window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($ae_loc.last_idb_reload && (Date.now() - $ae_loc.last_idb_reload) > default_idb_reload_time) {
|
||||||
|
console.log(`Last reload too old:`, $ae_loc.last_idb_reload);
|
||||||
|
|
||||||
|
if (browser) {
|
||||||
|
$ae_loc.last_idb_reload = Date.now();
|
||||||
|
|
||||||
|
// Clear Indexed DB as well
|
||||||
|
indexedDB.deleteDatabase('ae_archives_db');
|
||||||
|
indexedDB.deleteDatabase('ae_core_db');
|
||||||
|
indexedDB.deleteDatabase('ae_events_db');
|
||||||
|
indexedDB.deleteDatabase('ae_notes_db');
|
||||||
|
indexedDB.deleteDatabase('ae_posts_db');
|
||||||
|
|
||||||
|
// localStorage.removeItem('ae_loc');
|
||||||
|
// localStorage.removeItem('events_loc');
|
||||||
|
|
||||||
|
// window.location.reload();
|
||||||
|
}
|
||||||
|
} else if (browser) {
|
||||||
|
console.log(`Last reload is recent:`, $ae_loc.last_idb_reload);
|
||||||
|
// Clear Indexed DB as well
|
||||||
|
// indexedDB.deleteDatabase('ae_core_db');
|
||||||
|
// indexedDB.deleteDatabase('ae_events_db');
|
||||||
|
|
||||||
|
// localStorage.removeItem('ae_loc');
|
||||||
|
// localStorage.removeItem('events_loc');
|
||||||
|
|
||||||
|
// window.location.reload();
|
||||||
|
}
|
||||||
|
|
||||||
// There should almost always be an event_id set.
|
// There should almost always be an event_id set.
|
||||||
if ($ae_loc?.site_cfg_json.slct__event_id) {
|
if ($ae_loc?.site_cfg_json.slct__event_id) {
|
||||||
$events_slct.event_id = $ae_loc.site_cfg_json.slct__event_id;
|
$events_slct.event_id = $ae_loc.site_cfg_json.slct__event_id;
|
||||||
|
|||||||
Reference in New Issue
Block a user