From 041bdb6026d16d65ec2352d6d21976899fd3d2b4 Mon Sep 17 00:00:00 2001 From: lhbxs <596850703@qq.com> Date: Thu, 6 Feb 2025 15:27:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20setNodes=20?= =?UTF-8?q?=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/x-flow/package.json | 2 +- packages/x-flow/src/XFlow.tsx | 3 ++- packages/x-flow/src/components/NodeEditor/index.tsx | 3 ++- packages/x-flow/src/hooks/useFlow.ts | 2 +- packages/x-flow/src/models/store.ts | 6 +++--- packages/x-flow/src/utils/index.ts | 3 +++ 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/x-flow/package.json b/packages/x-flow/package.json index 504e0263f..3276d829d 100644 --- a/packages/x-flow/package.json +++ b/packages/x-flow/package.json @@ -1,6 +1,6 @@ { "name": "@xrenders/xflow", - "version": "1.0.4-beta.5", + "version": "1.0.4-beta.6", "description": "一款功能强大、易用灵活的流程编辑器框架,帮助你轻松构建复杂的工作流和流程产品", "keywords": [ "xflow" diff --git a/packages/x-flow/src/XFlow.tsx b/packages/x-flow/src/XFlow.tsx index f07833623..961688dce 100644 --- a/packages/x-flow/src/XFlow.tsx +++ b/packages/x-flow/src/XFlow.tsx @@ -254,11 +254,12 @@ const XFlow: FC = memo(props => { const NodeEditorWrap = useMemo(() => { return ( ); }, [activeNode?.id]); diff --git a/packages/x-flow/src/components/NodeEditor/index.tsx b/packages/x-flow/src/components/NodeEditor/index.tsx index fad585027..c8a18b720 100644 --- a/packages/x-flow/src/components/NodeEditor/index.tsx +++ b/packages/x-flow/src/components/NodeEditor/index.tsx @@ -19,9 +19,10 @@ interface INodeEditorProps { onChange: (data: any) => void; nodeType: string; id: string; + ref?: React.Ref; // 添加 ref 属性 } -const NodeEditor: FC = forwardRef((props, ref) => { +const NodeEditor: FC = forwardRef((props, ref: any) => { const { data, onChange, nodeType, id } = props; const form = useForm(); // // 1.获取节点配置信息 diff --git a/packages/x-flow/src/hooks/useFlow.ts b/packages/x-flow/src/hooks/useFlow.ts index f4830c716..f08c7b820 100644 --- a/packages/x-flow/src/hooks/useFlow.ts +++ b/packages/x-flow/src/hooks/useFlow.ts @@ -138,7 +138,7 @@ export const useFlow = () => { const runAutoLayout = useMemoizedFn(() => { const newNodes: any = autoLayoutNodes(storeApi.getState().nodes, storeApi.getState().edges, storeApi.getState().layout); - setNodes(newNodes, false); + setNodes(newNodes); }); return useMemo( diff --git a/packages/x-flow/src/models/store.ts b/packages/x-flow/src/models/store.ts index 96cea266a..96ee551cb 100644 --- a/packages/x-flow/src/models/store.ts +++ b/packages/x-flow/src/models/store.ts @@ -81,14 +81,14 @@ const createStore = (initProps?: Partial) => { edges: addEdge(connection, get().edges), }); }, - setNodes: (nodes, isTransform = true) => { - set({ nodes: isTransform ? transformNodes(nodes) : nodes }); + setNodes: (nodes) => { + set({ nodes: transformNodes(nodes) }); }, setEdges: edges => { set({ edges }); }, addNodes: (payload, isTransform = true) => { - const newNodes = get().nodes.concat(isTransform ? transformNodes(Array.isArray(payload) ? payload : [payload]) : payload); + const newNodes = get().nodes.concat(transformNodes(Array.isArray(payload) ? payload : [payload])); set({ nodes: newNodes }); }, addEdges: payload => { diff --git a/packages/x-flow/src/utils/index.ts b/packages/x-flow/src/utils/index.ts index e73f5cc37..1111cefcb 100644 --- a/packages/x-flow/src/utils/index.ts +++ b/packages/x-flow/src/utils/index.ts @@ -172,6 +172,9 @@ export const capitalize = (string: string) => { export const transformNodes = (nodes: any[]) => { return nodes?.map(item => { const { type, data, ...rest } = item; + if (type === 'custom') { + return item; + } if (type === 'Switch' || type === 'Parallel') { return {