From 95355459479995a50415ded6fe945f7a5033ec73 Mon Sep 17 00:00:00 2001 From: zhaoying Date: Thu, 2 Apr 2026 12:13:11 +0800 Subject: [PATCH] fix(web): if-else cases --- .../views/Workflow/hooks/useWorkflowGraph.ts | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/web/src/views/Workflow/hooks/useWorkflowGraph.ts b/web/src/views/Workflow/hooks/useWorkflowGraph.ts index 626165da..02bbfc99 100644 --- a/web/src/views/Workflow/hooks/useWorkflowGraph.ts +++ b/web/src/views/Workflow/hooks/useWorkflowGraph.ts @@ -490,32 +490,36 @@ export const useWorkflowGraph = ({ * @param node - Clicked node */ const nodeClick = ({ node }: { node: Node }) => { - // Ignore add-node type node clicks - const nodeData = node.getData() - if (nodeData?.type === 'add-node' || nodeData.type === 'break' || nodeData.type === 'cycle-start') { - setSelectedNode(null) - return; - } + blankClick() - const nodes = graphRef.current?.getNodes(); - - nodes?.forEach(vo => { - const data = vo.getData(); - if (data.isSelected) { - vo.setData({ - ...data, - isSelected: false, - }); + setTimeout(() => { + // Ignore add-node type node clicks + const nodeData = node.getData() + if (nodeData?.type === 'add-node' || nodeData.type === 'break' || nodeData.type === 'cycle-start') { + setSelectedNode(null) + return; } - }); - node.setData({ - ...nodeData, - isSelected: true, - }); - clearEdgeSelect() - if (nodeData.type !== 'notes') { - setSelectedNode(node); - } + + const nodes = graphRef.current?.getNodes(); + + nodes?.forEach(vo => { + const data = vo.getData(); + if (data.isSelected) { + vo.setData({ + ...data, + isSelected: false, + }); + } + }); + node.setData({ + ...nodeData, + isSelected: true, + }); + clearEdgeSelect() + if (nodeData.type !== 'notes') { + setSelectedNode(node); + } + }, 0) }; /** * Handle edge click event