feat(launcher): improve Events Presentation Launcher stability and data flow
- Standardized ID usage: Migrated multiple components from '_random' variants to standard 'id' properties to align with V3 backend and Dexie patterns. - Electron Integration: Added global 'native_app' declaration and Window interface augmentation in app.d.ts to resolve TypeScript errors. - Type Safety: Enhanced ae_EventSession interface with missing 'event_file_li' and added runtime null checks in session loading logic. - UI/UX: Restored missing launcher components in location-specific pages and fixed LiveQuery filter logic for session lists. - Bug Fixes: Resolved indexing errors in location list and corrected store update patterns in layout.
This commit is contained in:
@@ -197,7 +197,7 @@
|
||||
let lq__event_event_file_obj_li = $derived(
|
||||
liveQuery(async () => {
|
||||
let results = await db_events.file
|
||||
.where('for_id_random')
|
||||
.where('for_id')
|
||||
.equals($events_slct.event_id ?? '')
|
||||
.sortBy('filename');
|
||||
|
||||
@@ -209,8 +209,8 @@
|
||||
let lq__location_event_file_obj_li = $derived(
|
||||
liveQuery(async () => {
|
||||
let results = await db_events.file
|
||||
// .where('event_location_id_random')
|
||||
.where('for_id_random')
|
||||
// .where('event_location_id')
|
||||
.where('for_id')
|
||||
.equals($events_slct.event_location_id ?? '')
|
||||
.sortBy('filename');
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
|
||||
// let lq__event_session_obj_li = $derived(liveQuery(async () => {
|
||||
// let results = await db_events.session
|
||||
// // .bulkGet(event_session_id_random_li);
|
||||
// // .bulkGet(event_session_id_li);
|
||||
// .where('event_location_id')
|
||||
// .equals($events_slct.event_location_id)
|
||||
// .sortBy('name');
|
||||
@@ -303,15 +303,15 @@
|
||||
// console.log(`LQ - Using $events_sess.session_li to get event sessions.`);
|
||||
// }
|
||||
// // $events_sess.session_li_trigger = false;
|
||||
// let event_session_id_random_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
|
||||
// let event_session_id_li = []; // This is to prevent the array from constantly updating and triggering the liveQuery.
|
||||
// for (let i = 0; i < $events_sess?.session_li.length; i++) {
|
||||
// let event_session_obj = $events_sess?.session_li[i];
|
||||
// let event_session_id_random = event_session_obj.event_session_id_random;
|
||||
// event_session_id_random_li.push(event_session_id_random);
|
||||
// let event_session_id = event_session_obj.event_session_id;
|
||||
// event_session_id_li.push(event_session_id);
|
||||
// }
|
||||
// // let event_session_id_random_li = tmp_li;
|
||||
// // let event_session_id_li = tmp_li;
|
||||
// results = await db_events.session
|
||||
// .bulkGet(event_session_id_random_li);
|
||||
// .bulkGet(event_session_id_li);
|
||||
// } else if ($lq__event_obj?.cfg_json?.session_group_sort === 'DESC') {
|
||||
// if (log_lvl) {
|
||||
// console.log(`LQ - Using DESC sort for Event Session list event_id: ${$events_slct?.event_id}`);
|
||||
@@ -357,7 +357,7 @@
|
||||
$events_slct.event_session_obj_li &&
|
||||
JSON.stringify($events_slct.event_session_obj_li) !== JSON.stringify(results)
|
||||
) {
|
||||
$events_slct.event_session_obj_li = [...results];
|
||||
$events_slct.event_session_obj_li = [...(results || [])];
|
||||
if (log_lvl) {
|
||||
console.log(
|
||||
`Session slct li stored version has changed for ID = ${$events_slct.event_id}`,
|
||||
@@ -537,7 +537,7 @@
|
||||
$events_sess.launcher.modal__open_event_file_id = $events_slct.event_file_id;
|
||||
// $events_sess.launcher.modal__event_file_obj = event_file_obj;
|
||||
|
||||
// $events_sess.launcher.modal__img_src = `/event/file/${event_file_obj.event_file_id_random}/download`;
|
||||
// $events_sess.launcher.modal__img_src = `/event/file/${event_file_obj.event_file_id}/download`;
|
||||
|
||||
// $events_slct.event_file_obj = event_file_obj;
|
||||
|
||||
@@ -548,7 +548,7 @@
|
||||
// NOTE: This is not finished yet.
|
||||
// This should now trigger the Svelte component for the event launcher file container. Currently this does nothing. Need to bind to something or use the "events_sess.launcher" object?
|
||||
|
||||
// let as_modal_result = open_event_file_as_modal({event_file_id: event_file_obj.event_file_id_random, method: 'modal', filename: event_file_obj.filename, extension: event_file_obj.extension, modal_title: poster_title});
|
||||
// let as_modal_result = open_event_file_as_modal({event_file_id: event_file_obj.event_file_id, method: 'modal', filename: event_file_obj.filename, extension: event_file_obj.extension, modal_title: poster_title});
|
||||
// if (as_modal_result) {
|
||||
// console.log($events_sess.launcher);
|
||||
// console.log(event_file_obj);
|
||||
@@ -666,7 +666,7 @@
|
||||
|
||||
async function handle_event_file_open() {
|
||||
let event_file_obj;
|
||||
if ($events_slct.event_file_obj && $events_slct.event_file_obj.event_file_id_random) {
|
||||
if ($events_slct.event_file_obj && $events_slct.event_file_obj.event_file_id) {
|
||||
console.log($events_slct.event_file_obj);
|
||||
event_file_obj = $events_slct.event_file_obj;
|
||||
} else {
|
||||
@@ -678,7 +678,7 @@
|
||||
}
|
||||
|
||||
// let as_modal_result = open_event_file_as_modal({
|
||||
// event_file_id: event_file_obj.event_file_id_random,
|
||||
// event_file_id: event_file_obj.event_file_id,
|
||||
// filename: event_file_obj.filename,
|
||||
// extension: event_file_obj.extension,
|
||||
// modal_title: ae_util.shorten_filename(event_file_obj.filename, 75)
|
||||
@@ -693,11 +693,14 @@
|
||||
}
|
||||
|
||||
async function handle_event_file_close() {
|
||||
let as_modal_result = close_event_file_as_modal({});
|
||||
// let as_modal_result = close_event_file_as_modal({});
|
||||
|
||||
if (as_modal_result) {
|
||||
events_sess.launcher.set({ ...$events_sess.launcher, ...as_modal_result });
|
||||
}
|
||||
// if (as_modal_result) {
|
||||
// events_sess.update(n => {
|
||||
// n.launcher = { ...n.launcher, ...as_modal_result };
|
||||
// return n;
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
if (!$events_loc.launcher.idle_timer) {
|
||||
@@ -765,7 +768,7 @@
|
||||
Object.keys($events_loc.launcher.screen_saver_img_kv)[rand_index]
|
||||
];
|
||||
|
||||
$events_slct.event_file_id = event_file_obj.event_file_id_random;
|
||||
$events_slct.event_file_id = event_file_obj.event_file_id;
|
||||
$events_slct.event_file_obj = event_file_obj;
|
||||
// $slct_trigger = 'event_file';
|
||||
// $events_loc.launcher.event_file_open.open_status = 'open';
|
||||
@@ -779,7 +782,7 @@
|
||||
$events_sess.launcher.modal__open_event_file_id =
|
||||
$events_slct.event_file_id;
|
||||
$events_sess.launcher.modal__event_file_obj = event_file_obj;
|
||||
// $events_sess.launcher.modal__img_src = `/event/file/${event_file_obj.event_file_id_random}/download`;
|
||||
// $events_sess.launcher.modal__img_src = `/event/file/${event_file_obj.event_file_id}/download`;
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1411,7 +1414,7 @@
|
||||
Close Remote Poster Display Only
|
||||
</button>
|
||||
<!-- Open: {$ae_api.base_url} {$events_sess.launcher.modal__open_event_file_id} -->
|
||||
<!-- /event/file/{$events_slct.event_file_obj.event_file_id_random}/download?filename={$events_slct.event_file_obj.filename}&x_no_account_id_token=direct-download -->
|
||||
<!-- /event/file/{$events_slct.event_file_obj.event_file_id}/download?filename={$events_slct.event_file_obj.filename}&x_no_account_id_token=direct-download -->
|
||||
<!-- <span class="aspect-9/16 max-h-96"> -->
|
||||
{#if $events_sess.launcher.modal__open_event_file_id}
|
||||
<img
|
||||
|
||||
Reference in New Issue
Block a user