@rxflow/base
Version:
BaseFlow - 核心 Flow 组件库
54 lines (52 loc) • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useNodeTypes = void 0;
var _react = require("react");
var _InputNode = require("../components/Nodes/InputNode");
var _DefaultNode = require("../components/Nodes/DefaultNode");
var _OutputNode = require("../components/Nodes/OutputNode");
var _GroupNode = require("../components/Nodes/GroupNode");
var _NodeRenderFactory = require("../components/NodeRenderFactory");
/**
* @author: yanxianliang
* @date: 2025-07-02 11:40
* @desc: 获取节点类型定义
*
* Copyright (c) 2025 by yanxianliang, All Rights Reserved.
*/
/**
* 将外部节点定义解析成 reactflow 需要的结构
*/
const useNodeTypes = nodeTypeList => {
return (0, _react.useMemo)(() => {
// inner nodes
const nodeTypes = {
input: _InputNode.InputNode,
default: _DefaultNode.DefaultNode,
output: _OutputNode.OutputNode,
group: _GroupNode.GroupNode
};
if (nodeTypeList && Array.isArray(nodeTypeList)) {
for (let i = 0; i < nodeTypeList.length; i++) {
const item = nodeTypeList[i];
if (item && item.type && item.component) {
const {
type,
component,
defaultSize,
measureHandles
} = item;
const nodeType = (0, _NodeRenderFactory.nodeRenderFactory)(component);
// defaultSize 和 measureHandles绑定
nodeType.defaultSize = defaultSize;
nodeType.measureHandles = measureHandles;
nodeTypes[type] = nodeType; // 高阶组件
}
}
}
return nodeTypes;
}, [nodeTypeList]);
};
exports.useNodeTypes = useNodeTypes;