From 7b1f30af1a5b0022d60cd8a75f095ffc53de21cc Mon Sep 17 00:00:00 2001 From: Dom Date: Fri, 29 May 2026 17:16:24 +0200 Subject: [PATCH] fix(vwb): preserve static palette tools --- .../frontend_v4/src/components/ToolPalette.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/visual_workflow_builder/frontend_v4/src/components/ToolPalette.tsx b/visual_workflow_builder/frontend_v4/src/components/ToolPalette.tsx index b19cc1187..a1dc4a3f9 100644 --- a/visual_workflow_builder/frontend_v4/src/components/ToolPalette.tsx +++ b/visual_workflow_builder/frontend_v4/src/components/ToolPalette.tsx @@ -53,6 +53,13 @@ function mapCatalogAction(action: CatalogAction): ActionDefinition | null { }; } +function mergeCatalogActions(catalogActions: ActionDefinition[]): ActionDefinition[] { + const byType = new Map(); + ACTIONS.forEach(action => byType.set(action.type, action)); + catalogActions.forEach(action => byType.set(action.type, action)); + return ACTIONS.map(action => byType.get(action.type) || action); +} + export default function ToolPalette() { // État des catégories dépliées (toutes fermées par défaut sauf 'mouse') const [expandedCategories, setExpandedCategories] = useState(['mouse']); @@ -73,7 +80,7 @@ export default function ToolPalette() { .map((action: CatalogAction) => mapCatalogAction(action)) .filter((action: ActionDefinition | null): action is ActionDefinition => action !== null); if (!cancelled && mapped.length > 0) { - setCatalogActions(mapped); + setCatalogActions(mergeCatalogActions(mapped)); } } catch (error) { console.warn('Catalogue VWB indisponible, palette statique utilisée:', error);