Fix infinite hydration loop and stabilize global store synchronization

- Refactored layouts to derive account data from stable props instead of reactive stores.
- Wrapped store updates in untrack() with deep equality guards to prevent infinite re-renders.
- Resolved duplicate untrack declarations and missing imports across the project.
- Added fetch safeguards to Element_data_store to prevent redundant API calls.
- Standardized hydration patterns to break circular dependencies during initial load.
This commit is contained in:
Scott Idem
2026-02-08 17:15:20 -05:00
parent 88bc18cf15
commit 718de1457d
33 changed files with 455 additions and 1567 deletions

View File

@@ -24,7 +24,9 @@
import Journal_entry_obj_qry from './../ae_comp__journal_entry_obj_qry.svelte';
let ae_acct = data[$slct.account_id];
// NOTE: Derived from data.account_id (prop) instead of $slct.account_id (store)
// to prevent circular dependency loops during hydration.
let ae_acct = $derived(data[data.account_id]);
$effect(() => {
if (log_lvl) {
console.log(`ae_acct = `, ae_acct);

View File

@@ -43,7 +43,7 @@
import AeCompModalJournalImport from '../ae_comp__modal_journal_import.svelte';
// Variables
let ae_acct = data[$slct.account_id];
let ae_acct = data[data.account_id];
let show_export_modal = $state(false);
let show_import_modal = $state(false);

View File

@@ -47,7 +47,7 @@
// Variables
// *** Quickly pull out data from parent(s)
let ae_acct = data[$slct.account_id];
let ae_acct = data[data.account_id];
let show_export_modal = $state(false);
$effect(() => {