Skip to main content
Glama
flow-tool.tsx2.87 kB
import { t } from 'i18next'; import { Workflow, Trash2, EllipsisVertical } from 'lucide-react'; import { useState } from 'react'; import { ConfirmationDeleteDialog } from '@/components/delete-dialog'; import { Card, CardContent } from '@/components/ui/card'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { AgentFlowTool as AgentFlowToolType } from '@activepieces/shared'; type AgentFlowToolProps = { disabled?: boolean; tool: AgentFlowToolType; removeTool: (toolIds: string[]) => Promise<void>; }; export const AgentFlowTool = ({ disabled, tool, removeTool, }: AgentFlowToolProps) => { const [open, setOpen] = useState(false); const openFlow = () => { window.open(`/flows/${tool.flowId}`, '_blank'); }; return ( <Card key={`flow-${tool.toolName}`}> <CardContent className="flex items-center justify-between p-3 min-h-[48px]"> <div className="flex items-center gap-3 min-w-0 group cursor-pointer" onClick={openFlow} > <div className="h-8 w-8 rounded-md bg-muted flex items-center justify-center shrink-0"> <Workflow className="h-5 w-5 text-muted-foreground" /> </div> <div className="min-w-0"> <h3 className="text-sm font-medium truncate"> <span className="group-hover:underline"> {tool.flowId || t('Flow')} </span> </h3> </div> </div> <div className="flex items-center gap-2"> <DropdownMenu open={open} onOpenChange={setOpen}> <DropdownMenuTrigger disabled={disabled} className="rounded-full p-2 hover:bg-muted cursor-pointer" asChild > <EllipsisVertical className="h-8 w-8" /> </DropdownMenuTrigger> <DropdownMenuContent noAnimationOnOut={true} onCloseAutoFocus={(e) => e.preventDefault()} > <ConfirmationDeleteDialog title={`${t('Delete')} ${tool.flowId}`} message={t('Are you sure you want to delete this tool?')} mutationFn={async () => await removeTool([tool.toolName])} entityName={t('Tool')} > <DropdownMenuItem onSelect={(e) => e.preventDefault()}> <div className="flex cursor-pointer flex-row gap-2 items-center"> <Trash2 className="h-4 w-4 text-destructive" /> <span className="text-destructive">{t('Delete')}</span> </div> </DropdownMenuItem> </ConfirmationDeleteDialog> </DropdownMenuContent> </DropdownMenu> </div> </CardContent> </Card> ); };

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