"use client"; import { NodeKind } from "lib/ai/workflow/workflow.interface"; import { cn } from "lib/utils"; import { BotIcon, BoxIcon, HardDriveUpload, HouseIcon, InfoIcon, LandPlotIcon, SplitIcon, TerminalIcon, TextIcon, WrenchIcon, } from "lucide-react"; import { useMemo } from "react"; export function NodeIcon({ type, className, iconClassName, }: { type: NodeKind; className?: string; iconClassName?: string }) { const Icon = useMemo(() => { switch (type) { case NodeKind.Input: return HouseIcon; case NodeKind.Output: return LandPlotIcon; case NodeKind.Note: return InfoIcon; case NodeKind.Tool: return WrenchIcon; case NodeKind.LLM: return BotIcon; case NodeKind.Condition: return SplitIcon; case NodeKind.Http: return HardDriveUpload; case NodeKind.Template: return TextIcon; case NodeKind.Code: return TerminalIcon; default: return BoxIcon; } }, [type]); return (
); }