diff --git a/src/lib/ae_events/db_events.ts b/src/lib/ae_events/db_events.ts index c5ef62c6..8aed1056 100644 --- a/src/lib/ae_events/db_events.ts +++ b/src/lib/ae_events/db_events.ts @@ -511,7 +511,7 @@ export interface Presentation { // A key value list of the presenters event_presenter_kv?: null|key_val; - event_presenter_li?: null|list; + event_presenter_li?: null|Array; } diff --git a/src/lib/ae_idaa_stores.ts b/src/lib/ae_idaa_stores.ts index 6cf31156..0112e283 100644 --- a/src/lib/ae_idaa_stores.ts +++ b/src/lib/ae_idaa_stores.ts @@ -65,6 +65,8 @@ let idaa_local_data_struct: key_val = { qry__limit: 50, qry__offset: 0, qry__order_by_li: {'priority': 'DESC', 'sort': 'DESC', 'updated_on': 'DESC', 'created_on': 'DESC', 'title': 'ASC'}, + + edit_kv: {}, // Used to track which post objects are being edited }, recovery_meetings: { @@ -112,6 +114,8 @@ let idaa_session_data_struct: key_val = { show__inline_edit__post_obj: null, show__modal_edit__post_id: null, show__modal_view__post_id: null, + obj_changed: false, // Used to track if the post object has been changed in the edit view + // edit_kv: {}, // Used to track which post objects are being edited }, recovery_meetings: { diff --git a/src/lib/ae_posts/db_posts.ts b/src/lib/ae_posts/db_posts.ts index 0c560c5a..bf6dc72d 100644 --- a/src/lib/ae_posts/db_posts.ts +++ b/src/lib/ae_posts/db_posts.ts @@ -56,6 +56,11 @@ export interface Post { // Additional fields for convenience (database views) post_comment_count?: number; + + // Placeholder for generated temp data + hosted_file_id_li?: null|Array; + hosted_file_obj_li?: null|Array; + upload_complete?: boolean; } diff --git a/src/lib/element_tiptap_editor.svelte b/src/lib/element_tiptap_editor.svelte index 20865274..63dd320c 100644 --- a/src/lib/element_tiptap_editor.svelte +++ b/src/lib/element_tiptap_editor.svelte @@ -39,6 +39,7 @@ export let html_text: string = ''; export let default_minimal: boolean = false; export let show_toolbar: boolean = true; export let placeholder: string = 'Type your text here...'; +export let changed: boolean = false; if (default_minimal) { show_toolbar = false; @@ -84,6 +85,7 @@ export let show_button_kv: any; // export let new_json = editor?.getJSON(); export let new_html: string = ''; +let orig_html: string = html_text; onMount(() => { }); @@ -91,6 +93,14 @@ onMount(() => { onDestroy(() => { }); +$: if (html_text !== orig_html && html_text !== '

') { + console.log('html_text changed:', html_text); + console.log('orig_html:', orig_html); + changed = true; +} else { + changed = false; +} + let mouse_entered_timer: any; let mouse_enter_wait: number = 500; let mouse_leave_wait: number = 2000; diff --git a/src/routes/idaa/(idaa)/bb/[post_id]/+page.svelte b/src/routes/idaa/(idaa)/bb/[post_id]/+page.svelte index 26367e09..a603e9e9 100644 --- a/src/routes/idaa/(idaa)/bb/[post_id]/+page.svelte +++ b/src/routes/idaa/(idaa)/bb/[post_id]/+page.svelte @@ -3,7 +3,7 @@ import type { PageData } from './$types'; let { data }: { data: PageData } = $props(); -let log_lvl: number = 0; +let log_lvl: number = 1; // *** Import Svelte specific import { onDestroy } from "svelte"; @@ -30,7 +30,7 @@ if (log_lvl) { console.log(`ae_acct = `, ae_acct); } -$idaa_sess.bb.edit__post_id = null; +$idaa_sess.bb.edit__post_obj = null; $idaa_slct.post_id = ae_acct.slct.post_id; // $idaa_slct.post_obj = ae_acct.slct.post_obj; @@ -39,6 +39,18 @@ let lq__post_obj = $derived(liveQuery(async () => { let results = await db_posts.post .get($idaa_slct.post_id ?? ''); // null or undefined does not reset things like '' does + // Check if results are different than the current $idaa_slct.post_obj + if ($idaa_slct.post_obj && results) { + if (JSON.stringify($idaa_slct.post_obj) !== JSON.stringify(results)) { + $idaa_slct.post_obj = { ...results}; + } else { + if (log_lvl) { + console.log(`Post object has not changed for post_id: ${$idaa_slct.post_id}`); + } + } + } + + // console.log(`$idaa_slct.post_obj = `, $idaa_slct.post_obj); return results; })); @@ -57,6 +69,7 @@ let lq__post_comment_obj = $derived(liveQuery(async () => { let results = await db_posts.comment .get($idaa_slct.post_comment_id ?? ''); // null or undefined does not reset things like '' does + $idaa_slct.post_comment_obj = { ...results }; return results; })); @@ -155,16 +168,22 @@ onDestroy(() => { - {#if $idaa_sess.bb.edit__post_id} + {#if $idaa_sess.bb.edit__post_obj} {:else} @@ -960,7 +1022,14 @@ $effect(() => {