import { t } from 'i18next'; import { ChevronDown, Puzzle, Workflow } from 'lucide-react'; import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { AgentTool, AgentToolType } from '@activepieces/shared'; import { AgentFlowToolDialog } from './flow-tool-dialog'; import { AgentPieceDialog } from './piece-tool-dialog'; type AddAgentToolDropdownProps = { tools: AgentTool[]; disabled?: boolean; onToolsUpdate: (tools: AgentTool[]) => void; }; export const AddAgentToolDropdown = ({ tools, disabled, onToolsUpdate, }: AddAgentToolDropdownProps) => { const [openDropdown, setOpenDropdown] = useState(false); const [showAddPieceDialog, setShowAddPieceDialog] = useState(false); const [showAddFlowDialog, setShowAddFlowDialog] = useState(false); return ( { onToolsUpdate(tools); setShowAddPieceDialog(false); setOpenDropdown(false); }} onClose={() => { setShowAddPieceDialog(false); setOpenDropdown(false); }} > { e.preventDefault(); setShowAddPieceDialog(true); }} > {t('From piece')} tool.type === AgentToolType.FLOW) .map((tool) => tool.flowId!)} onToolsUpdate={(newTools) => { onToolsUpdate(newTools); setShowAddFlowDialog(false); setOpenDropdown(false); }} onClose={() => { setShowAddFlowDialog(false); setOpenDropdown(false); }} tools={tools} > { e.stopPropagation(); e.preventDefault(); setShowAddFlowDialog(true); }} > {t('From flow')} ); };