From 672ac529e7209267c221fe28bdb3700001904eb7 Mon Sep 17 00:00:00 2001 From: gilles Date: Sun, 8 Mar 2026 19:38:06 +0100 Subject: [PATCH] =?UTF-8?q?fix(plantes):=20deleteVariety/submitVariety=20?= =?UTF-8?q?=E2=80=94=20try/catch=20+=20refresh=20detailPlantObj?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/views/PlantesView.vue | 37 +++++++++++++++++++----------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/frontend/src/views/PlantesView.vue b/frontend/src/views/PlantesView.vue index 3ca5f5e..79266b9 100644 --- a/frontend/src/views/PlantesView.vue +++ b/frontend/src/views/PlantesView.vue @@ -868,25 +868,36 @@ function closeFormVariety() { async function submitVariety() { if (!detailPlantObj.value?.id) return const payload = { ...formVariety, prix_achat: formVariety.prix_achat ?? undefined } - if (editVariety.value?.id) { - await plantsStore.updateVariety(detailPlantObj.value.id, editVariety.value.id, payload) - toast.success('Variété modifiée') - } else { - await plantsStore.createVariety(detailPlantObj.value.id, payload) - toast.success('Variété ajoutée') + try { + if (editVariety.value?.id) { + await plantsStore.updateVariety(detailPlantObj.value.id, editVariety.value.id, payload) + toast.success('Variété modifiée') + } else { + await plantsStore.createVariety(detailPlantObj.value.id, payload) + toast.success('Variété ajoutée') + } + // Refresh plant data so detailPlantObj reflects updated varieties + await plantsStore.fetchAll() + const updatedPlant = plantsStore.plants.find(p => p.id === detailPlantObj.value?.id) + if (updatedPlant) detailPlantObj.value = updatedPlant + closeFormVariety() + } catch { + // L'intercepteur Axios affiche le message d'erreur } - // Refresh plant data so detailPlantObj reflects updated varieties - await plantsStore.fetchAll() - const updatedPlant = plantsStore.plants.find(p => p.id === detailPlantObj.value?.id) - if (updatedPlant) detailPlantObj.value = updatedPlant - closeFormVariety() } async function deleteVariety(vid: number) { if (!detailPlantObj.value?.id) return if (!confirm('Supprimer cette variété ?')) return - await plantsStore.removeVariety(detailPlantObj.value.id, vid) - toast.success('Variété supprimée') + try { + await plantsStore.removeVariety(detailPlantObj.value.id, vid) + await plantsStore.fetchAll() + const updatedPlant = plantsStore.plants.find(p => p.id === detailPlantObj.value?.id) + if (updatedPlant) detailPlantObj.value = updatedPlant + toast.success('Variété supprimée') + } catch { + // L'intercepteur Axios affiche le message d'erreur + } } async function submitPlant() {