From c71fc65be9d9dfca843397dfa09eb24c6fb859e5 Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Thu, 7 May 2026 16:26:01 -0400 Subject: [PATCH] Fix archive content upload not patching record after file upload Svelte 4 store nested property mutations don't call set()/update(), so $effect on $idaa_slct never fired after upload. Replaced store property binds with local $state variables that Svelte 5 proxies track natively. Co-Authored-By: Claude Sonnet 4.6 --- ...a_comp__archive_content_obj_id_edit.svelte | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_id_edit.svelte b/src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_id_edit.svelte index a0fca178..dd81a898 100644 --- a/src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_id_edit.svelte +++ b/src/routes/idaa/(idaa)/archives/[archive_id]/ae_idaa_comp__archive_content_obj_id_edit.svelte @@ -49,6 +49,12 @@ let disable_submit_btn = $state(false); let slct_hosted_file_kv: key_val = $state({}); +// Local $state for upload bind targets — Svelte 4 store mutations don't trigger $effect, +// so we can't bind directly to $idaa_slct.archive_content_obj.* for reactivity. +let upload_complete_local: boolean = $state(false); +let hosted_file_id_li_local: string[] = $state([]); +let hosted_file_obj_li_local: key_val[] = $state([]); + if ($idaa_slct.archive_content_id) { console.log( `Archive Content ID selected: ${$idaa_slct.archive_content_id}` @@ -354,14 +360,17 @@ async function handle_hosted_files_uploaded( $effect(() => { if ( - $idaa_slct.archive_content_obj?.upload_complete && - $idaa_slct.archive_content_obj?.hosted_file_id_li?.length && - $idaa_slct.archive_content_obj.hosted_file_obj_li?.length + upload_complete_local && + hosted_file_id_li_local.length && + hosted_file_obj_li_local.length ) { handle_hosted_files_uploaded( - $idaa_slct.archive_content_obj.hosted_file_id_li, - $idaa_slct.archive_content_obj.hosted_file_obj_li + hosted_file_id_li_local, + hosted_file_obj_li_local ); + upload_complete_local = false; + hosted_file_id_li_local = []; + hosted_file_obj_li_local = []; } }); @@ -564,18 +573,9 @@ $effect(() => { link_to_type="archive_content" link_to_id={$idaa_slct.archive_content_obj .archive_content_id} - bind:hosted_file_id_li={ - $idaa_slct.archive_content_obj - .hosted_file_id_li - } - bind:hosted_file_obj_li={ - $idaa_slct.archive_content_obj - .hosted_file_obj_li - } - bind:upload_complete={ - $idaa_slct.archive_content_obj - .upload_complete - } + bind:hosted_file_id_li={hosted_file_id_li_local} + bind:hosted_file_obj_li={hosted_file_obj_li_local} + bind:upload_complete={upload_complete_local} log_lvl={1}> {#snippet label()}