From 428da471d1df402868d33e24a7e5420b4faa65c7 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Mon, 16 Mar 2026 10:32:07 +0100 Subject: [PATCH] fix(component-edit) : force reload catalog to display pre-selected slot items Co-Authored-By: Claude Opus 4.6 (1M context) --- app/components/ComposantSelect.vue | 6 +++--- app/components/PieceSelect.vue | 6 +++--- app/components/ProductSelect.vue | 6 +++--- app/composables/useComponentEdit.ts | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/app/components/ComposantSelect.vue b/app/components/ComposantSelect.vue index f63f449..13ea2b5 100644 --- a/app/components/ComposantSelect.vue +++ b/app/components/ComposantSelect.vue @@ -81,10 +81,10 @@ onMounted(() => { watch( () => props.modelValue, (value) => { - if (typeof value === 'string') { + if (typeof value === 'string' && value) { const exists = composantOptions.value.some((c: any) => c.id === value) - if (!exists && composantOptions.value.length === 0 && !loading.value) { - loadComposants({ itemsPerPage: 200 }).catch((error: unknown) => { + if (!exists && !loading.value) { + loadComposants({ itemsPerPage: 200, force: true }).catch((error: unknown) => { console.error('Erreur lors du chargement des composants:', error) }) } diff --git a/app/components/PieceSelect.vue b/app/components/PieceSelect.vue index 9f08cbf..1ae484f 100644 --- a/app/components/PieceSelect.vue +++ b/app/components/PieceSelect.vue @@ -81,10 +81,10 @@ onMounted(() => { watch( () => props.modelValue, (value) => { - if (typeof value === 'string') { + if (typeof value === 'string' && value) { const exists = pieceOptions.value.some((piece: any) => piece.id === value) - if (!exists && pieceOptions.value.length === 0 && !loading.value) { - loadPieces({ itemsPerPage: 200 }).catch((error: unknown) => { + if (!exists && !loading.value) { + loadPieces({ itemsPerPage: 200, force: true }).catch((error: unknown) => { console.error('Erreur lors du chargement des pièces:', error) }) } diff --git a/app/components/ProductSelect.vue b/app/components/ProductSelect.vue index 34c7d21..35aba6a 100644 --- a/app/components/ProductSelect.vue +++ b/app/components/ProductSelect.vue @@ -81,10 +81,10 @@ onMounted(() => { watch( () => props.modelValue, (value) => { - if (typeof value === 'string') { + if (typeof value === 'string' && value) { const exists = productOptions.value.some((product) => product.id === value) - if (!exists && productOptions.value.length === 0 && !loading.value) { - loadProducts().catch((error) => { + if (!exists && !loading.value) { + loadProducts({ force: true }).catch((error) => { console.error('Erreur lors du chargement des produits:', error) }) } diff --git a/app/composables/useComponentEdit.ts b/app/composables/useComponentEdit.ts index 674e0ec..36b0972 100644 --- a/app/composables/useComponentEdit.ts +++ b/app/composables/useComponentEdit.ts @@ -511,11 +511,11 @@ export function useComponentEdit(componentId: string) { ]) loading.value = false - // Load catalogs for slot selectors + // Load catalogs for slot selectors (force: true to bypass cache from list pages that load fewer items) Promise.allSettled([ - loadPieces({ itemsPerPage: 200 }), - loadProducts({ itemsPerPage: 200 }), - loadComposants({ itemsPerPage: 200 }), + loadPieces({ itemsPerPage: 200, force: true }), + loadProducts({ itemsPerPage: 200, force: true }), + loadComposants({ itemsPerPage: 200, force: true }), ]).catch(() => {}) })