import { IAgentNode } from '@/interfaces/database/flow'; import { Handle, NodeProps, Position } from '@xyflow/react'; import { memo, useMemo } from 'react'; import { NodeHandleId } from '../../constant'; import useGraphStore from '../../store'; import { isBottomSubAgent } from '../../utils'; import { CommonHandle } from './handle'; import { LeftHandleStyle, RightHandleStyle } from './handle-icon'; import styles from './index.less'; import NodeHeader from './node-header'; import { NodeWrapper } from './node-wrapper'; import { ToolBar } from './toolbar'; function InnerAgentNode({ id, data, isConnectable = true, selected, }: NodeProps) { const edges = useGraphStore((state) => state.edges); const isHeadAgent = useMemo(() => { return !isBottomSubAgent(edges, id); }, [edges, id]); return ( {isHeadAgent && ( <> )} ); } export const AgentNode = memo(InnerAgentNode);