import FieldSchema, { InputField, SelectField } from '@/components/dashboard/nodes/common/Fields'; import { DotbaseNodesEnum } from '@/components/dashboard/nodes/types/nodeTypes'; import { ClsHeaderSkeleton, DefaultContent, ToolbarSkeleton } from '@/components/dashboard/nodes/common/ToolbarSkeleton'; import { ValidatorContext } from '@/contexts/ValidatorContext'; import useDnDStore from '@/stores/useDnDStore'; import { AgentSelectionStrategyEnum, OAIModelsEnum } from '@/utils/enum'; import { InformationCircleIcon } from '@heroicons/react/24/outline'; import React, { memo } from 'react'; import { Handle, NodeToolbar, Position, NodeProps as ReactFlowNodeProps, useReactFlow } from 'reactflow'; const Hub: React.FC = (props) => { const { errors } = React.useContext(ValidatorContext); const { updateNode } = useDnDStore(); const { getNode } = useReactFlow(); const [toolbarVisible, setToolbarVisible] = React.useState(false); const data = getNode(props.id)?.data; const onAgentNameChange = (e: React.ChangeEvent) => { const val = e.target.value.trim(); updateNode(props.id, { variableName: val }); }; const onMaxRoundsChange = (e: React.ChangeEvent) => { const val = e.target.value.trim(); updateNode(props.id, { maxRounds: parseInt(val) }); }; const onSpeakerSelectionChange = (e: React.ChangeEvent) => { const val = e.target.value; updateNode(props.id, { agentSelection: val }); }; const onLLMChange = (e: React.ChangeEvent) => { const val = e.target.value; updateNode(props.id, { selectedModel: val }); }; return (
HUB
setToolbarVisible(true)} onMouseLeave={() => setToolbarVisible(false)} /> } content={ } />
} errors={errors?.[props.id]?.variableName} /> } errors={errors?.[props.id]?.maxRounds} /> } errors={errors?.[props.id]?.agentSelection} /> } errors={errors?.[props.id]?.selectedModel} />
); }; export default memo(Hub);