From c61d3a4dca68cd9e88ea94df4d1410fc79773554 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Mon, 19 Aug 2024 17:56:32 -0400 Subject: [PATCH] Trying to make this LiveQuery work. --- .../ae_comp__event_presentation_obj_li.svelte | 116 +++++++++++++++--- .../ae_comp__event_presenter_obj_li.svelte | 60 ++++----- .../events_pres_mgmt/session_view.svelte | 18 ++- 3 files changed, 139 insertions(+), 55 deletions(-) diff --git a/src/routes/events_pres_mgmt/ae_comp__event_presentation_obj_li.svelte b/src/routes/events_pres_mgmt/ae_comp__event_presentation_obj_li.svelte index 787e7d8d..f5e13108 100644 --- a/src/routes/events_pres_mgmt/ae_comp__event_presentation_obj_li.svelte +++ b/src/routes/events_pres_mgmt/ae_comp__event_presentation_obj_li.svelte @@ -16,16 +16,35 @@ import Element_manage_event_file_li from '$lib/element_manage_event_file_li_all. // Exports // export let container_class_li: string|Array = []; -// export let event_presentation_id_random_li: Array; export let lq__event_obj: any; export let lq__event_presentation_obj_li: any; +// It is important that these not be set to a value! It messes with the Dexie LiveQuery. +// export let event_presentation_id_random_li: Array; +let event_presentation_id_random_li: Array; - // Variables +// Variables // let ae_promises: key_val = {}; // let ae_tmp: key_val = {}; // let ae_triggers: key_val = {}; +let tmp_li: Array = []; // This is to prevent the array from constantly updating and triggering the liveQuery. +if (!event_presentation_id_random_li?.length) { + console.log(`No ID list was passed to the component. Loading all presentations for the session.`); + if ($lq__event_presentation_obj_li?.length) { + console.log(`Count: ${$lq__event_presentation_obj_li?.length}`, $lq__event_presentation_obj_li); + for (let i = 0; i < $lq__event_presentation_obj_li?.length; i++) { + tmp_li.push($lq__event_presentation_obj_li[i].event_presentation_id_random); + } + event_presentation_id_random_li = tmp_li; + } else { + console.log(`No presentations found for the session!`); + } + console.log(`event_presentation_id_random_li:`, event_presentation_id_random_li); +} + + + // Functions and Logic import { browser } from '$app/environment'; @@ -33,13 +52,35 @@ if (browser) { console.log('Browser environment detected.'); } -// let lq_kv__event_presentation_obj_li = liveQuery( -// () => db_events.presentations -// .bulkGet(event_presentation_id_random_li) -// ); +let lq_kv__event_presentation_obj_li = liveQuery( + () => db_events.presentations + .bulkGet(event_presentation_id_random_li) +); + + +// Pull the IDs out of the object list. This may need to be an async function. +let lq_fancy__event_presentation_obj_li = liveQuery( + () => db_events.presentations + .bulkGet(async () => { + console.log('DO STUFF?'); + await $lq__event_presentation_obj_li; + console.log(`Count: ${$lq__event_presentation_obj_li?.length}`, $lq__event_presentation_obj_li); + let tmp_li: Array = []; + if ($lq__event_presentation_obj_li?.length) { + for (let i = 0; i < $lq__event_presentation_obj_li?.length; i++) { + tmp_li.push($lq__event_presentation_obj_li[i].event_presentation_id_random); + } + } + return tmp_li; + } + + + ) +); +
{#if $ae_loc.trusted_access && $ae_loc.edit_mode}
- {#if event_presentation_obj.event_presentation_id_random} + {#if event_presentation_obj?.event_presentation_id_random} {/if} @@ -263,7 +337,7 @@ if (browser) { {:else} Nothing to show yet...! -{/if} \ No newline at end of file +{/if} + + diff --git a/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte b/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte index 61521b37..3ed32ea9 100644 --- a/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte +++ b/src/routes/events_pres_mgmt/ae_comp__event_presenter_obj_li.svelte @@ -60,36 +60,36 @@ let lq__event_presentation_obj = liveQuery( () => db_events.presentations.get($events_slct.event_presentation_id) ); -let lq_kv__event_presenter_obj_li_2 = liveQuery( - () => db_events.presenters - .bulkGet(event_presenter_id_random_li) - .then(results => { - // console.log(`LQ Results:`, results); - // If the results are an array - if (results.length == 1) { - // If the first item is undefined we need to do something. - if (results[0] == undefined) { - console.log('Something went wrong! No presenters found?'); - // return []; - // return [{ id: '' }]; - // return 'NOTHING???'; - } - return results; - }else if (results.length > 1) { - return results; - } else { - return ['No presenters found.']; - } - // return results; - }) - .catch(error => { - console.error(`LQ Error: ${error}`); - return ['No presenters found.']; - }) - .finally(() => { - console.log(`LQ Finally:`, $lq_kv__event_presenter_obj_li_2); - }) -); +// let lq_kv__event_presenter_obj_li_2 = liveQuery( +// () => db_events.presenters +// .bulkGet(event_presenter_id_random_li) +// .then(results => { +// // console.log(`LQ Results:`, results); +// // If the results are an array +// if (results.length == 1) { +// // If the first item is undefined we need to do something. +// if (results[0] == undefined) { +// console.log('Something went wrong! No presenters found?'); +// // return []; +// // return [{ id: '' }]; +// // return 'NOTHING???'; +// } +// return results; +// }else if (results.length > 1) { +// return results; +// } else { +// return ['No presenters found.']; +// } +// // return results; +// }) +// .catch(error => { +// console.error(`LQ Error: ${error}`); +// return ['No presenters found.']; +// }) +// .finally(() => { +// console.log(`LQ Finally:`, $lq_kv__event_presenter_obj_li_2); +// }) +// ); // let lq__event_presentation_obj_li = liveQuery( // () => db_events.presentations diff --git a/src/routes/events_pres_mgmt/session_view.svelte b/src/routes/events_pres_mgmt/session_view.svelte index 18c7a96d..c4f3917d 100644 --- a/src/routes/events_pres_mgmt/session_view.svelte +++ b/src/routes/events_pres_mgmt/session_view.svelte @@ -793,12 +793,20 @@ $: if ($lq__event_session_obj) {
+ {#await $lq__event_presentation_obj_li} + Loading.... + {:then event_presentation_obj_li} + {#if $lq__event_presentation_obj_li && $lq__event_presentation_obj_li?.length > 0} + + + + + {/if} + {/await} - -