From a30690ea2aa74bb27f0987860e464b633b767d7c Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 26 Mar 2024 18:25:43 -0400 Subject: [PATCH] Mostly working before major fix for data shared. --- src/lib/element_data_store.svelte | 13 +++-- src/routes/+layout.svelte | 87 ++++++++++++++----------------- src/routes/+layout.ts | 70 +++++++------------------ 3 files changed, 66 insertions(+), 104 deletions(-) diff --git a/src/lib/element_data_store.svelte b/src/lib/element_data_store.svelte index cf2cf7bd..08853769 100644 --- a/src/lib/element_data_store.svelte +++ b/src/lib/element_data_store.svelte @@ -68,6 +68,8 @@ console.log(`ae_e_data_store cached: ${ds_code} = `, $ae_ds_loc); if (!$ae_ds_loc.id) { ds_loading_status = '-- loading --'; +} else { + ae_ds_loc.set($ae_ds_loc); } $ae_sess.ds.submit_status = null; @@ -76,8 +78,11 @@ $ae_sess.ds.update_status = null; let trigger: null|string = null; +import { browser } from '$app/environment'; + // This is a quick check to make sure the data store is not stale. If it is, then we need to trigger a reload. -if ($ae_ds_loc.loaded_on && $ae_ds_loc.chk_account_id == $ae_loc.account_id) { +if (browser && $ae_ds_loc.loaded_on && $ae_ds_loc.chk_account_id == $ae_loc.account_id) { + console.log(`ae_data_store ${ds_code} loaded_on: ${$ae_ds_loc.loaded_on}`); let loaded_on = new Date($ae_ds_loc.loaded_on); let now = new Date(); let diff = now.getTime() - loaded_on.getTime(); @@ -91,8 +96,8 @@ if ($ae_ds_loc.loaded_on && $ae_ds_loc.chk_account_id == $ae_loc.account_id) { trigger = 'load__ds__code'; }, random_ms); } -} else { - console.log('No loaded_on date found and or the account_id check failed. Need to trigger reload.'); +} else if (browser) { + console.log('ae_data_store No loaded_on date found and or the account_id check failed. Need to trigger reload.'); trigger = 'load__ds__code'; } @@ -105,7 +110,7 @@ onMount(() => { console.log('Element: Data Store element_data_store.svelte'); // Wait for random number of milliseconds to avoid all data stores being reloaded at the same time. - let random_ms = Math.floor(Math.random() * 500); + let random_ms = Math.floor(Math.random() * 750); console.log(`Random number of milliseconds: ${random_ms}`); setTimeout(() => { trigger = 'load__ds__code'; diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index ba6e5deb..65fabcb1 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -29,9 +29,10 @@ const modalRegistry: Record = { // Highlight JS import hljs from 'highlight.js/lib/core'; import 'highlight.js/styles/github-dark.css'; -import type { Writable } from 'svelte/store'; -import { get } from 'svelte/store'; -import { page } from "$app/stores"; +// import type { Writable } from 'svelte/store'; +// import { get } from 'svelte/store'; +import { browser } from '$app/environment'; +// import { page } from "$app/stores"; import { localStorageStore, storeHighlightJs } from '@skeletonlabs/skeleton'; import xml from 'highlight.js/lib/languages/xml'; // for HTML import css from 'highlight.js/lib/languages/css'; @@ -60,7 +61,7 @@ import Element_access_type from '$lib/element_access_type.svelte'; import Element_app_cfg from '$lib/element_app_cfg.svelte'; import Element_data_store from '$lib/element_data_store.svelte'; -// Quickly save the data passed from the parent to the Svelte stores. +// Quickly save the data passed from the parent(s) to the Svelte stores, localStorage, and other. This should catch anything that is a child of this layout.svelte file. $ae_loc = data.ae_loc; $ae_api = data.ae_api; @@ -77,6 +78,26 @@ if ($ae_loc.site_cfg_json.slct__event_id) { console.log(`No Event ID set.`); } +if (browser) { + // Waiting until the browser exists. + // save_ds_to_local(data.ae_ds); + let ae_ds = data.ae_ds; + console.log(`ae_ds__ data:`, ae_ds) + for (let [key, value] of Object.entries(ae_ds)) { + console.log(`ae_ds__ key: ${key}, value:`, value); + localStorage.setItem(`ae_ds__${key}`, JSON.stringify(value)); + + // This should not be needed here anymore. + // if (key == 'hub__site__appshell_header') { + // $ae_sess.site_appshell_header = value; + // console.log(`$ae_sess.site_appshell_header = `, $ae_sess.site_appshell_header); + // } + } + + // $ae_sess.site_appshell_header = JSON.parse(localStorage.getItem('ae_ds__hub__site__appshell_header')); + // console.log(`$ae_sess.site_appshell_header = `, $ae_sess.site_appshell_header); +} + // We want to loop through all of the data store (ds) key value pairs and set them to localStorage // $: if (data.ae_ds) { // console.log(`ae_ds__ data:`, data.ae_ds) @@ -86,26 +107,7 @@ if ($ae_loc.site_cfg_json.slct__event_id) { // } // } -import { browser } from '$app/environment'; -// async function save_ds_to_local (ae_ds: any) { -// console.log(`ae_ds__ data:`, ae_ds) -// for (let [key, value] of Object.entries(ae_ds)) { -// console.log(`ae_ds__ key: ${key}, value:`, value); -// localStorage.setItem(`ae_ds__${key}`, JSON.stringify(value)); -// } -// } - -if (browser) { - // Waiting until the browser exists. - // save_ds_to_local(data.ae_ds); - let ae_ds = data.ae_ds; - console.log(`ae_ds__ data:`, ae_ds) - for (let [key, value] of Object.entries(ae_ds)) { - console.log(`ae_ds__ key: ${key}, value:`, value); - localStorage.setItem(`ae_ds__${key}`, JSON.stringify(value)); - } -} onMount(() => { console.log('Root: +layout.svelte'); @@ -113,18 +115,9 @@ onMount(() => { // Waiting until the browser exists. // save_ds_to_local(data.ae_ds); - - // console.log(`ae_ds_testing = `, $ds_testing); - // $ds_testing = {'test': 'Changed by Scott'}; - - - // if (data.ae_ds) { - // console.log(`ae_ds__ data:`, data.ae_ds) - // for (let [key, value] of Object.entries(data.ae_ds)) { - // console.log(`ae_ds__ key: ${key}, value:`, value); - // localStorageStore(`ae_ds__${key}`, value); - // } - // } + // $ae_sess.site_appshell_header = JSON.parse(localStorage.getItem('ae_ds__hub__site__appshell_header')); + // console.log(`$ae_sess.site_appshell_header = `, $ae_sess.site_appshell_header); + // $ae_sess = $ae_sess; let iframe = data.url.searchParams.get('iframe'); if (iframe == 'true') { @@ -164,21 +157,15 @@ onMount(() => { }); -// let data_store_obj_get_promises: key_val = {}; -// let get_ds_hub_page_access_code_li_json_promise = handle_get_data_store_obj_w_code({code: 'hub__page__access_code_li_json', data_type: 'json', trigger: 'set_access_code_li'}); -// let get_ds_hub_site_header_promise = handle_get_data_store_obj_w_code({code: 'hub_site_header'}); -// let get_ds_hub_site_footer_promise = handle_get_data_store_obj_w_code({code: 'hub_site_footer'}); +// $slct_trigger = 'set_access_code_li'; +// $: if ($slct_trigger == 'set_access_code_li' && !$ae_loc.ds['hub__page__access_code_li_json']) { +// console.log(`$ae_loc.ds['hub__page__access_code_li_json'] = `, $ae_loc.ds['hub__page__access_code_li_json']); +// $slct_trigger = null; // Reset the trigger to prevent loops - -$slct_trigger = 'set_access_code_li'; -$: if ($slct_trigger == 'set_access_code_li' && !$ae_loc.ds['hub__page__access_code_li_json']) { - console.log(`$ae_loc.ds['hub__page__access_code_li_json'] = `, $ae_loc.ds['hub__page__access_code_li_json']); - $slct_trigger = null; // Reset the trigger to prevent loops - - $ae_loc.page_access_code_li = $ae_loc.ds['hub__page__access_code_li_json']; - $ae_loc = $ae_loc; // Trigger Svelte just in case - // console.log($ae_loc); -} +// $ae_loc.page_access_code_li = $ae_loc.ds['hub__page__access_code_li_json']; +// $ae_loc = $ae_loc; // Trigger Svelte just in case +// // console.log($ae_loc); +// } @@ -237,6 +224,8 @@ $: if ($slct_trigger == 'set_access_code_li' && !$ae_loc.ds['hub__page__access_c + +