import type { FC, ReactElement, } from 'react' import { cloneElement, memo, useMemo, } from 'react' import type { NodeProps } from 'reactflow' import { useNodes } from 'reactflow' import { useStore } from '../../store' import type { NodeData } from '../../types' import BlockIcon from '../../block-icon' import BlockSelector from '../../block-selector' import NodeControl from './components/node-control' type BaseNodeProps = { children: ReactElement } & NodeProps const BaseNode: FC = ({ id: nodeId, data, selected, children, }) => { const nodes = useNodes() const selectedNodeId = useStore(state => state.selectedNodeId) const handleSelectedNodeId = useStore(state => state.handleSelectedNodeId) const currentNode = useMemo(() => { return nodes.find(node => node.id === nodeId) }, [nodeId, nodes]) return (
handleSelectedNodeId(nodeId || '')} >
{data.title}
{cloneElement(children, { id: nodeId, data })}
Define the initial parameters for launching a workflow
{}} asChild />
) } export default memo(BaseNode)