import "@flowgram.ai/free-layout-editor/index.css" import { useNodeRender, WorkflowNodeRenderer, type WorkflowNodeProps, } from "@flowgram.ai/free-layout-editor" import { BotIcon, CircleStopIcon, DatabaseIcon, GitBranchIcon, MessageSquareTextIcon, SendIcon, UserRoundIcon, } from "lucide-react" import type { ComponentType } from "react" import { cn } from "@/lib/utils" const iconByType: Record> = { start: UserRoundIcon, conversation_understanding: BotIcon, reply_policy: MessageSquareTextIcon, condition: GitBranchIcon, knowledge_retrieve: DatabaseIcon, answerability_gate: GitBranchIcon, llm_reply: BotIcon, human_confirm: UserRoundIcon, create_ticket: MessageSquareTextIcon, handoff_to_human: UserRoundIcon, send_reply: SendIcon, end: CircleStopIcon, } export function FlowgramNodeRenderer(props: WorkflowNodeProps) { const { selected, node, form } = useNodeRender() const nodeType = String(node.flowNodeType ?? "") const Icon = iconByType[nodeType] ?? BotIcon return (
{form?.render()}
) }