fix(upload): replace db_events.file.clear() with targeted per-object reload

db_events.file.clear() after every upload was nuking the entire Dexie file
table. Every liveQuery watching any file list (Launcher, other locations,
sessions, presenters) would immediately show 0 results. Only the uploaded-to
object's files were reloaded; all others remained empty until their own
background syncs fired — intermittent disappearance that depended on timing.

Fix: targeted load_ae_obj_li__event_file for only the current link_to_id,
which uses the SWR pattern (returns cache + background refresh that includes
the newly created file). Other objects' file caches are untouched.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scott Idem
2026-05-27 20:33:12 -04:00
parent d3bf314c62
commit e4e2174c97

View File

@@ -24,7 +24,6 @@ import {
events_trig events_trig
} from '$lib/stores/ae_events_stores'; } from '$lib/stores/ae_events_stores';
import { events_func } from '$lib/ae_events/ae_events_functions'; import { events_func } from '$lib/ae_events/ae_events_functions';
import { db_events } from '$lib/ae_events/db_events';
interface Props { interface Props {
log_lvl?: number; log_lvl?: number;
@@ -110,9 +109,13 @@ async function handle_submit_form_files(event: SubmitEvent) {
$events_sess.files.processed_file_list = []; $events_sess.files.processed_file_list = [];
target.reset(); target.reset();
// Refresh Local Cache (Optimistic Revalidation) // Refresh the file list for this object only.
await db_events.file.clear(); // WHY: Previously used db_events.file.clear() here, which nuked the ENTIRE
events_func.load_ae_obj_li__event_file({ // file table in Dexie. Every liveQuery watching any file list would immediately
// show 0 results, and only this object's files were reloaded. Files for all
// other objects (locations, sessions, presenters) remained missing until their
// own background syncs fired. Targeted reload avoids that side effect.
await events_func.load_ae_obj_li__event_file({
api_cfg: $ae_api, api_cfg: $ae_api,
for_obj_type: link_to_type, for_obj_type: link_to_type,
for_obj_id: link_to_id, for_obj_id: link_to_id,