Skip to main content
Glama
add-agent-tool-dropwdown.tsx2.91 kB
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 ( <DropdownMenu modal={false} open={openDropdown} onOpenChange={setOpenDropdown} > <DropdownMenuTrigger disabled={disabled} asChild> <Button variant="basic"> <span>{t('Add tool')}</span> <ChevronDown className="h-4 w-4" /> </Button> </DropdownMenuTrigger> <DropdownMenuContent> <AgentPieceDialog tools={tools} open={showAddPieceDialog} onToolsUpdate={(tools) => { onToolsUpdate(tools); setShowAddPieceDialog(false); setOpenDropdown(false); }} onClose={() => { setShowAddPieceDialog(false); setOpenDropdown(false); }} > <DropdownMenuItem onSelect={(e) => { e.preventDefault(); setShowAddPieceDialog(true); }} > <Puzzle className="h-4 w-4 me-2" /> <span>{t('From piece')}</span> </DropdownMenuItem> </AgentPieceDialog> <AgentFlowToolDialog open={showAddFlowDialog} selectedFlows={tools .filter((tool) => tool.type === AgentToolType.FLOW) .map((tool) => tool.flowId!)} onToolsUpdate={(newTools) => { onToolsUpdate(newTools); setShowAddFlowDialog(false); setOpenDropdown(false); }} onClose={() => { setShowAddFlowDialog(false); setOpenDropdown(false); }} tools={tools} > <DropdownMenuItem onSelect={(e) => { e.stopPropagation(); e.preventDefault(); setShowAddFlowDialog(true); }} > <Workflow className="h-4 w-4 me-2" /> <span>{t('From flow')}</span> </DropdownMenuItem> </AgentFlowToolDialog> </DropdownMenuContent> </DropdownMenu> ); };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server