UNPKG

@rxflow/base

Version:

BaseFlow - 核心 Flow 组件库

46 lines (44 loc) 1.5 kB
/** * @author: yanxianliang * @date: 2025-07-02 11:40 * @desc: 获取节点类型定义 * * Copyright (c) 2025 by yanxianliang, All Rights Reserved. */ import { useMemo } from "react"; import { InputNode } from "../components/Nodes/InputNode"; import { DefaultNode } from "../components/Nodes/DefaultNode"; import { OutputNode } from "../components/Nodes/OutputNode"; import { GroupNode } from "../components/Nodes/GroupNode"; import { nodeRenderFactory } from "../components/NodeRenderFactory"; /** * 将外部节点定义解析成 reactflow 需要的结构 */ export var useNodeTypes = function useNodeTypes(nodeTypeList) { return useMemo(function () { // inner nodes var nodeTypes = { input: InputNode, default: DefaultNode, output: OutputNode, group: GroupNode }; if (nodeTypeList && Array.isArray(nodeTypeList)) { for (var i = 0; i < nodeTypeList.length; i++) { var item = nodeTypeList[i]; if (item && item.type && item.component) { var type = item.type, component = item.component, defaultSize = item.defaultSize, measureHandles = item.measureHandles; var nodeType = nodeRenderFactory(component); // defaultSize 和 measureHandles绑定 nodeType.defaultSize = defaultSize; nodeType.measureHandles = measureHandles; nodeTypes[type] = nodeType; // 高阶组件 } } } return nodeTypes; }, [nodeTypeList]); };