refactor: Standardize data processing and update to Svelte 5 runes
This commit introduces a major refactoring of the data processing logic across multiple modules (events, archives, posts, sponsorships) to use a standardized pattern with . This improves consistency and maintainability. Key changes: - Replaced module-specific data processing with a generic helper. - Removed deprecated functions. - Updated Svelte components to leverage the new Svelte 5 runes, simplifying state management. - Fixed linting errors and updated test configurations. - Added .
This commit is contained in:
@@ -36,47 +36,42 @@ let { data }: Props = $props();
|
||||
// Variables
|
||||
// *** Quickly pull out data from parent(s)
|
||||
let ae_acct = data[$slct.account_id];
|
||||
$effect(() => {
|
||||
if (log_lvl) {
|
||||
console.log(`ae_acct = `, ae_acct);
|
||||
}
|
||||
});
|
||||
|
||||
$journals_slct.journal_id = ae_acct.slct.journal_id;
|
||||
let lq__journal_obj = $derived(liveQuery(async () => {
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_obj: journal_id = ${$journals_slct?.journal_id}`);
|
||||
}
|
||||
|
||||
let results = await db_journals.journal
|
||||
.get($journals_slct?.journal_id ?? ''); // null or undefined does not reset things like '' does
|
||||
// .where('id')
|
||||
// .equals($journals_slct.journal_id)
|
||||
// .first();
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_obj: results = `, results);
|
||||
}
|
||||
|
||||
// Check if results are different than the current session version stored under $journals_slct
|
||||
if ($journals_slct.journal_obj && results) {
|
||||
if (JSON.stringify($journals_slct.journal_obj) !== JSON.stringify(results)) {
|
||||
$journals_slct.journal_obj = { ...results };
|
||||
if (log_lvl) {
|
||||
console.log(`Session slct stored version has changed for ID = ${$journals_slct.journal_id}`, $journals_slct.journal_obj);
|
||||
}
|
||||
} else {
|
||||
if (log_lvl) {
|
||||
console.log(`Session slct stored version has not changed for ID = ${$journals_slct.journal_id}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}));
|
||||
|
||||
let lq__journal_obj_li = $derived(liveQuery(async () => {
|
||||
$effect(() => {
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_obj_li: person_id = ${$ae_loc.person_id}`);
|
||||
console.log(`lq__journal_obj: journal_id = ${$journals_slct?.journal_id}`);
|
||||
console.log(`lq__journal_obj: results = `, lq__journal_obj);
|
||||
if ($journals_slct.journal_obj && lq__journal_obj) {
|
||||
if (JSON.stringify($journals_slct.journal_obj) !== JSON.stringify(lq__journal_obj)) {
|
||||
console.log(`Session slct stored version has changed for ID = ${$journals_slct.journal_id}`, $journals_slct.journal_obj);
|
||||
} else {
|
||||
console.log(`Session slct stored version has not changed for ID = ${$journals_slct.journal_id}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let lq__journal_obj_li = $derived(liveQuery(async () => {
|
||||
let results = await db_journals.journal
|
||||
.where('person_id')
|
||||
.equals($ae_loc.person_id)
|
||||
@@ -86,49 +81,57 @@ let lq__journal_obj_li = $derived(liveQuery(async () => {
|
||||
// Check if results are different than the current session version stored under $journals_slct
|
||||
if ($journals_slct.journal_obj_li && JSON.stringify($journals_slct.journal_obj_li) !== JSON.stringify(results)) {
|
||||
$journals_slct.journal_obj_li = [...results];
|
||||
if (log_lvl) {
|
||||
console.log(`Session slct li stored version has changed for ID = ${$ae_loc.person_id}`, $journals_slct.journal_obj_li);
|
||||
}
|
||||
} else {
|
||||
if (log_lvl > 1) {
|
||||
console.log(`Session slct li stored version has not changed for ID = ${$ae_loc.person_id}`);
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}));
|
||||
|
||||
$effect(() => {
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_obj_li: person_id = ${$ae_loc.person_id}`);
|
||||
console.log(`lq__journal_obj_li: results = `, lq__journal_obj_li);
|
||||
if ($journals_slct.journal_obj_li && JSON.stringify($journals_slct.journal_obj_li) !== JSON.stringify(lq__journal_obj_li)) {
|
||||
console.log(`Session slct li stored version has changed for ID = ${$ae_loc.person_id}`, $journals_slct.journal_obj_li);
|
||||
} else {
|
||||
if (log_lvl > 1) {
|
||||
console.log(`Session slct li stored version has not changed for ID = ${$ae_loc.person_id}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// For some reason data.params.journal_entry_id (or whatever param) is not being passed to this page when loaded by a link from another page. This seems to be a bug with Svelte or SvelteKit. Hopefully fixed in a future version 5? 2024-11-06
|
||||
$journals_slct.journal_entry_id = ae_acct.slct.journal_entry_id;
|
||||
// $journals_slct.journal_entry_obj = ae_acct.slct.journal_entry_obj;
|
||||
|
||||
let lq__journal_entry_obj = $derived(liveQuery(async () => {
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_entry_obj: journal_entry_id = ${$journals_slct?.journal_entry_id}`);
|
||||
}
|
||||
let results = await db_journals.journal_entry
|
||||
.get($journals_slct.journal_entry_id ?? ''); // null or undefined does not reset things like '' does
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_entry_obj: results = `, results);
|
||||
}
|
||||
|
||||
// Check if results are different than the current session version stored under $journals_slct
|
||||
if ($journals_slct.journal_entry_obj && results) {
|
||||
if (JSON.stringify($journals_slct.journal_entry_obj) !== JSON.stringify(results)) {
|
||||
$journals_slct.journal_entry_obj = { ...results};
|
||||
if (log_lvl) {
|
||||
console.log(`Session slct stored version has changed for ID = ${$journals_slct.journal_entry_id}`, $journals_slct.journal_entry_obj);
|
||||
}
|
||||
} else {
|
||||
if (log_lvl) {
|
||||
console.log(`Session slct stored version has not changed for ID = ${$journals_slct.journal_entry_id}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return results;
|
||||
}));
|
||||
|
||||
$effect(() => {
|
||||
if (log_lvl) {
|
||||
console.log(`lq__journal_entry_obj: journal_entry_id = ${$journals_slct?.journal_entry_id}`);
|
||||
console.log(`lq__journal_entry_obj: results = `, lq__journal_entry_obj);
|
||||
if ($journals_slct.journal_entry_obj && lq__journal_entry_obj) {
|
||||
if (JSON.stringify($journals_slct.journal_entry_obj) !== JSON.stringify(lq__journal_entry_obj)) {
|
||||
console.log(`Session slct stored version has changed for ID = ${$journals_slct.journal_entry_id}`, $journals_slct.journal_entry_obj);
|
||||
} else {
|
||||
console.log(`Session slct stored version has not changed for ID = ${$journals_slct.journal_entry_id}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// $effect(() => {
|
||||
// if (browser && $lq__journal_entry_obj?.journal_entry_id) {
|
||||
|
||||
Reference in New Issue
Block a user