From 4923623dd43bbe60beb518fd3ed3816f40262173 Mon Sep 17 00:00:00 2001 From: Dom Date: Tue, 21 Apr 2026 11:54:16 +0200 Subject: [PATCH] =?UTF-8?q?fix(vwb):=20biblioth=C3=A8que=20ne=20s'=C3=A9cr?= =?UTF-8?q?ase=20plus=20au=20chargement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le useEffect(saveLibrary) se déclenchait avec library=[] avant que loadLibraryAsync ait fini → écrasait le fichier serveur avec un tableau vide. Ajout d'un flag libraryLoaded pour ne sauvegarder qu'après le chargement initial. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../frontend_v4/src/components/CapturePanel.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/visual_workflow_builder/frontend_v4/src/components/CapturePanel.tsx b/visual_workflow_builder/frontend_v4/src/components/CapturePanel.tsx index 0cd32c788..9d6b26eb3 100644 --- a/visual_workflow_builder/frontend_v4/src/components/CapturePanel.tsx +++ b/visual_workflow_builder/frontend_v4/src/components/CapturePanel.tsx @@ -64,6 +64,7 @@ export default function CapturePanel({ const [previewScale, setPreviewScale] = useState({ x: 1, y: 1 }); const isDebugMode = executionMode === 'debug'; + const [libraryLoaded, setLibraryLoaded] = useState(false); // Charger la bibliotheque depuis le backend (prioritaire), fallback localStorage. useEffect(() => { @@ -77,13 +78,16 @@ export default function CapturePanel({ : item.timestamp, })) ); + setLibraryLoaded(true); }); }, []); - // Sauvegarder la bibliotheque (localStorage + backend) + // Sauvegarder la bibliotheque SEULEMENT après le chargement initial useEffect(() => { - saveLibrary(library); - }, [library]); + if (libraryLoaded) { + saveLibrary(library); + } + }, [library, libraryLoaded]); // Ajouter capture a la bibliotheque (thumbnail compresse JPEG 320x240) useEffect(() => {