import { IFlowNode, IFlowNodeParameter } from '@/types/flow'; import { Checkbox, Input, InputNumber, Select, Tooltip } from 'antd'; import React from 'react'; import RequiredIcon from './required-icon'; import NodeHandler from './node-handler'; import { InfoCircleOutlined } from '@ant-design/icons'; interface NodeParamHandlerProps { node: IFlowNode; data: IFlowNodeParameter; label: 'inputs' | 'outputs' | 'parameters'; index: number; // index of array } // render node parameters item const NodeParamHandler: React.FC = ({ node, data, label, index }) => { function handleChange(value: any) { data.value = value; } if (data.category === 'resource') { return ; } else if (data.category === 'common') { let defaultValue = data.value !== null && data.value !== undefined ? data.value : data.default; switch (data.type_name) { case 'int': return (

{data.label}: {data.description && ( )}

{ handleChange(e.target.value); }} />
); case 'str': return (

{data.label}: {data.description && ( )}

{data.options?.length > 0 ? ( { handleChange(e.target.value); }} /> )}
); case 'bool': defaultValue = defaultValue === 'False' ? false : defaultValue; defaultValue = defaultValue === 'True' ? true : defaultValue; return (

{data.label}: {data.description && ( )} { handleChange(e.target.checked); }} />

); } } }; export default NodeParamHandler;