Fixed up the new Launcher. The Dexie liveQuery is now working better. Added await tick();.

This commit is contained in:
Scott Idem
2024-08-07 18:37:45 -04:00
parent cb1f4343db
commit f407565fc7
6 changed files with 149 additions and 33 deletions

View File

@@ -89,6 +89,26 @@ let events_local_data_struct: key_val = {
'classes__form': 'border border-surface-200 p-4 space-y-4 rounded-container-token',
},
// Event Presentation Launcher
'launcher': {
qry_max__sessions: 75,
qry_max__presentations: 25,
qry_max__presenters: 75,
qry_max__files: 75,
show_content__session_code: true,
show_content__presentation_code: true,
show_content__presenter_code: true,
slct: {
event_id: null,
event_location_id: null,
event_session_id: null,
event_presentation_id: null,
event_presenter_id: null,
event_file_id: null, // event_file_id
}
},
// Lead Retrievals (Exhibit)
'leads': {
show_option__paid_tab: true,
@@ -213,6 +233,10 @@ let events_session_data_struct: key_val = {
qr_scan_result: null,
},
// Event Presentation Launcher
'launcher': {
},
// Lead Retrievals (Exhibit)
'leads': {
example: true,

View File

@@ -31,17 +31,17 @@ export async function load({ params, parent }) { // route
});
}
// if (ae_acct.slct.event_id !== event_id) {
// ae_acct.slct.event_id = event_id;
if (ae_acct.slct.event_id !== event_id) {
ae_acct.slct.event_id = event_id;
// let load_event_obj = events_func.handle_load_ae_obj_id__event({
// api_cfg: ae_acct.api,
// event_id: event_id,
// try_cache: false
// });
// let load_event_obj = events_func.handle_load_ae_obj_id__event({
// api_cfg: ae_acct.api,
// event_id: event_id,
// try_cache: false
// });
// ae_acct.slct.event_obj = await load_event_obj;
// }
// ae_acct.slct.event_obj = await load_event_obj;
}
if (browser) {
let load_event_location_obj_li = events_func.handle_load_ae_obj_li__event_location({

View File

@@ -49,16 +49,62 @@ let ae_acct = data[$slct.account_id];
// obj_li: ae_acct.slct.event_session_obj_li
// });
// }
console.log(`ae_acct.slct.event_id:`, ae_acct.slct.event_id);
$events_slct.event_id = ae_acct.slct.event_id;
// $events_slct.event_obj = ae_acct.slct.event_obj;
$events_slct.event_location_obj_li = ae_acct.slct.event_location_obj_li;
$events_slct.event_session_obj_li = ae_acct.slct.event_session_obj_li;
// $events_trigger = 'event_location_li';
if (!$events_loc.launcher) {
$events_loc.launcher = {};
$events_loc.launcher.slct = {
event_id: null,
};
$events_loc.launcher.show_content__session_code = true;
$events_loc.launcher.show_content__presentation_code = true;
$events_loc.launcher.show_content__presenter_code = true;
}
if (!$events_loc.launcher.slct) {
$events_loc.launcher.slct = {
event_id: null,
event_location_id: null,
event_session_id: null,
};
}
$events_loc.launcher.slct.event_id = ae_acct.slct.event_id;
if (!$events_sess.launcher) {
$events_sess.launcher = {};
}
let lq__event_obj = liveQuery(
() => db_events.events.get(ae_acct.slct.event_id)
() => db_events.events.get($events_loc.launcher.slct.event_id)
);
let lq__event_location_obj = liveQuery(
() => db_events.locations
.get($events_loc.launcher.slct.event_location_id)
);
let lq__event_location_obj_li = liveQuery(
() => db_events.locations
.where('event_id')
.equals($events_loc.launcher.slct.event_id)
.sortBy('name')
);
let lq__event_session_obj = liveQuery(
() => db_events.sessions
.get($events_loc.launcher.slct.event_session_id)
);
let lq__event_session_obj_li = liveQuery(
() => db_events.sessions
.where('event_location_id')
.equals($events_loc.launcher.slct.event_location_id)
.sortBy('name')
);
@@ -186,6 +232,11 @@ onMount(() => {
dq__event_obj={$lq__event_obj}
dq__where_type_id_val={'event_id'}
bind:dq__where_eq_id_val={$events_slct.event_id}
lq__event_location_obj={lq__event_location_obj}
lq__event_location_obj_li={lq__event_location_obj_li}
lq__event_session_obj={lq__event_session_obj}
lq__event_session_obj_li={lq__event_session_obj_li}
>
</Event_launcher_menu>
{/if}
@@ -202,9 +253,27 @@ onMount(() => {
max-w-full
"
>
{#if $events_trigger == 'load__event_session_obj' && $events_slct.event_session_id}
<!-- {#if $events_trigger == 'load__event_session_obj' && $events_slct.event_session_id}
<Event_launcher_session_view
slct_event_session_id={$events_slct.event_session_id}
lq__event_location_obj={lq__event_location_obj}
lq__event_location_obj_li={lq__event_location_obj_li}
lq__event_session_obj={lq__event_session_obj}
lq__event_session_obj_li={lq__event_session_obj_li}
>
</Event_launcher_session_view>
{/if} -->
<!-- {$lq__event_session_obj?.name} -->
{#if $events_loc.launcher.slct.event_session_id}
<Event_launcher_session_view
slct_event_session_id={$events_slct.event_session_id}
lq__event_location_obj={lq__event_location_obj}
lq__event_location_obj_li={lq__event_location_obj_li}
lq__event_session_obj={lq__event_session_obj}
lq__event_session_obj_li={lq__event_session_obj_li}
>
</Event_launcher_session_view>
{/if}

View File

@@ -46,26 +46,29 @@ for (let i = 0; i < event_location_obj_li.length; i++) {
event_location_id_li = tmp_li;
console.log(`event_location_id_li:`, event_location_id_li);
export let lq__event_location_obj: any;
export let lq__event_location_obj_li: any;
export let lq__event_session_obj: any;
export let lq__event_session_obj_li: any;
let lq__event_location_obj_li = liveQuery(
() => db_events.locations
.where('event_id')
.equals(dq__event_obj.id)
.sortBy('name')
);
// let lq__event_location_obj_li = liveQuery(
// () => db_events.locations
// .where('event_id')
// .equals(dq__event_obj.id)
// .sortBy('name')
// );
let lq_kv__event_location_obj_li = liveQuery(
() => db_events.locations
.bulkGet(event_location_id_li)
);
let lq__event_session_obj_li = liveQuery(
() => db_events.sessions
.where('event_location_id')
.equals(event_location_id ?? '7mYbLvYMPho')
.sortBy('name')
);
// let lq__event_session_obj_li = liveQuery(
// () => db_events.sessions
// .where('event_location_id')
// .equals(event_location_id ?? '7mYbLvYMPho')
// .sortBy('name')
// );
let lq_kv__event_session_obj_li = liveQuery(
() => db_events.sessions
@@ -193,6 +196,9 @@ $: if (event_location_id) {
dq__where_type_id_val = 'event_location_id';
dq__where_eq_id_val = event_location_id;
$events_loc.launcher.slct.event_location_id = event_location_id;
$events_loc.launcher.slct.event_session_id = null;
// $slct.event_location_id = event_location_id;
// $slct_trigger = 'event_location_li';

View File

@@ -16,6 +16,11 @@ import { events_func } from '$lib/ae_events_functions';
export let slct_event_session_id: string;
export let lq__event_location_obj: any;
export let lq__event_location_obj_li: any;
export let lq__event_session_obj: any;
export let lq__event_session_obj_li: any;
let load_event_session_obj = events_func.handle_load_ae_obj_id__event_session({
api_cfg: $ae_api,
event_session_id: slct_event_session_id,
@@ -26,9 +31,9 @@ let load_event_session_obj = events_func.handle_load_ae_obj_id__event_session({
// () => db_events.sessions.get(slct_event_session_id)
// );
let lq__event_session_obj = liveQuery(
() => db_events.sessions.get($events_slct.event_session_id)
);
// let lq__event_session_obj = liveQuery(
// () => db_events.sessions.get($events_slct.event_session_id)
// );
// import Event_launcher_file_cont from './launcher_file_cont.svelte';
@@ -59,10 +64,16 @@ let link_to_id: null|string = null;
{ae_util.iso_datetime_formatter($events_slct.event_session_obj.end_datetime, 'time_short')}
</div>
<h2>
{$events_slct.event_session_obj.name}
{#if $events_slct.event_session_obj.code}
{$events_slct.event_session_obj.code}
<!-- {$events_slct.event_session_obj.name} -->
<!-- {#if $events_slct.event_session_obj.code}
{$events_slct.event_session_obj.code}
{/if} -->
{$lq__event_session_obj?.name}
{#if $lq__event_session_obj?.code}
({$lq__event_session_obj?.code})
{/if}
</h2>
</header>

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { tick } from 'svelte';
import { liveQuery } from "dexie";
import { db_events } from "$lib/db_events";
import { ae_snip, ae_loc, ae_sess, ae_api, ae_trig, slct, slct_trigger } from '$lib/ae_stores';
@@ -42,7 +42,13 @@ let lq_kv__event_session_obj_li = liveQuery(
<li>
<button
class="btn btn-sm variant-ghost-primary hover:variant-filled-primary overflow-hidden text-xs w-full max-w-full text-left transition-all"
on:click={() => {
on:click={async () => {
$events_loc.launcher.slct.event_session_id = null;
await tick();
$events_loc.launcher.slct.event_session_id = event_session_obj?.id;
// $events_loc = $events_loc;
$events_trigger = null;
slct_event_session_id = null;
$events_slct.event_session_id = null;