From fc6f28f26e002c998fcc3bb4777a351e2e207a6f Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Tue, 1 Oct 2024 11:11:19 +0800 Subject: [PATCH] fix: variables check (#2849) * fix: variables check * remove log --- packages/global/core/workflow/utils.ts | 3 ++- .../WorkflowComponents/Flow/hooks/useWorkflow.tsx | 13 ++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/global/core/workflow/utils.ts b/packages/global/core/workflow/utils.ts index de3f1e5e6..34b1bc1db 100644 --- a/packages/global/core/workflow/utils.ts +++ b/packages/global/core/workflow/utils.ts @@ -298,7 +298,8 @@ export const formatEditorVariablePickerIcon = ( }; export const isReferenceValue = (value: any, nodeIds: string[]): boolean => { - return Array.isArray(value) && value.length === 2 && nodeIds.includes(value[0]); + const validIdList = [VARIABLE_NODE_ID, ...nodeIds]; + return Array.isArray(value) && value.length === 2 && validIdList.includes(value[0]); }; export const getElseIFLabel = (i: number) => { diff --git a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/hooks/useWorkflow.tsx b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/hooks/useWorkflow.tsx index 816a6fecd..e27d1994b 100644 --- a/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/hooks/useWorkflow.tsx +++ b/projects/app/src/pages/app/detail/components/WorkflowComponents/Flow/hooks/useWorkflow.tsx @@ -423,8 +423,8 @@ export const useWorkflow = () => { } // If the node has child nodes, remove the child nodes - if (nodes.some((n) => n.data.parentNodeId === node.id)) { - const childNodes = nodes.filter((n) => n.data.parentNodeId === node.id); + const childNodes = nodes.filter((n) => n.data.parentNodeId === node.id); + if (childNodes.length > 0) { const childNodeIds = childNodes.map((n) => n.id); const childNodesChange = childNodes.map((node) => ({ ...change, @@ -440,14 +440,14 @@ export const useWorkflow = () => { !childNodeIds.includes(edge.target) ) ); - return; } setEdges((state) => state.filter((edge) => edge.source !== change.id && edge.target !== change.id) ); + onNodesChange([change]); - return true; + return; }); const handleSelectNode = useMemoizedFn((change: NodeSelectionChange) => { // If the node is not selected and the Ctrl key is pressed, select the node @@ -517,9 +517,8 @@ export const useWorkflow = () => { if (change.type === 'remove') { const node = nodes.find((n) => n.id === change.id); // 如果删除失败,则不继续执行 - if (node && !handleRemoveNode(change, node)) { - return; - } + node && handleRemoveNode(change, node); + return; } else if (change.type === 'select') { handleSelectNode(change); } else if (change.type === 'position') {