import type { FC, ReactElement, } from 'react' import { cloneElement, memo, } from 'react' import type { NodeProps } from '../../types' import { BlockEnum } from '../../types' import { NodeSourceHandle, NodeTargetHandle, } from './components/node-handle' import NodeControl from './components/node-control' import BlockIcon from '@/app/components/workflow/block-icon' type BaseNodeProps = { children: ReactElement } & NodeProps const BaseNode: FC = ({ id, data, children, }) => { return (
{ data.type !== BlockEnum.VariableAssigner && ( ) } { data.type !== BlockEnum.IfElse && data.type !== BlockEnum.QuestionClassifier && ( ) }
{data.title}
{cloneElement(children, { id, data })}
{ data.desc && (
{data.desc}
) }
) } export default memo(BaseNode)