diff --git a/frontend/src/lib/features/items/ItemDetail.svelte b/frontend/src/lib/features/items/ItemDetail.svelte index 4bada751..62033baa 100644 --- a/frontend/src/lib/features/items/ItemDetail.svelte +++ b/frontend/src/lib/features/items/ItemDetail.svelte @@ -757,6 +757,10 @@ import NativeSelect from '../../components/NativeSelect.svelte'; function handleDeleteComplete(result) { showDeletionFeedback(); + // Do not let the next detail briefly render the deleted shared-store item. + itemDetailStore.reset(); + // Reparent navigation can reuse this component; allow its next item load. + itemDetailStore.loading = false; const collectionId = $currentRoute.params?.collectionId; // Navigate based on deletion result if (result?.mode === 'reparent' && result?.newParentId) { diff --git a/frontend/src/lib/stores/itemDetailStore.svelte.js b/frontend/src/lib/stores/itemDetailStore.svelte.js index 9ae58b27..74d8898f 100644 --- a/frontend/src/lib/stores/itemDetailStore.svelte.js +++ b/frontend/src/lib/stores/itemDetailStore.svelte.js @@ -643,7 +643,9 @@ class ItemDetailStore { return this.diagrams; }) .catch((err) => { - if (isAbortError(err)) return this.diagrams; + if (isAbortError(err) || controller.signal.aborted || this.item?.id !== itemId) { + return this.diagrams; + } if (err?.status === 404) { this.markDeleted(); return this.diagrams;