import { IconLinkPlus, IconSparkles, IconUsersGroup, } from "@tabler/icons-react"; import { File, FileText, Globe, Microscope, Search, Sparkles, Telescope, Webhook, } from "lucide-react"; import Image from "next/image"; import { EnumConnectorName } from "./connector"; export const getConnectorIcon = (connectorType: EnumConnectorName | string, className?: string) => { const iconProps = { className: className || "h-4 w-4" }; const imgProps = { className: className || "h-5 w-5", width: 20, height: 20 }; // Larger props for specific services (Google services, GitHub, Linear) - scale up from size-6 to size-8 const getLargeClassName = () => { if (!className) return "h-8 w-8"; // Replace size-6 with size-8, or h-6/w-6 with h-8/w-8 return className .replace(/size-6/g, "size-8") .replace(/\bh-6\b/g, "h-8") .replace(/\bw-6\b/g, "w-8"); }; const largeImgProps = { className: getLargeClassName(), width: 32, height: 32 }; switch (connectorType) { case EnumConnectorName.LINKUP_API: return ; case EnumConnectorName.LINEAR_CONNECTOR: return Linear; case EnumConnectorName.GITHUB_CONNECTOR: return GitHub; case EnumConnectorName.TAVILY_API: return Tavily; case EnumConnectorName.SEARXNG_API: return ; case EnumConnectorName.BAIDU_SEARCH_API: return Baidu; case EnumConnectorName.SLACK_CONNECTOR: return Slack; case EnumConnectorName.NOTION_CONNECTOR: return Notion; case EnumConnectorName.DISCORD_CONNECTOR: return Discord; case EnumConnectorName.JIRA_CONNECTOR: return Jira; case EnumConnectorName.GOOGLE_CALENDAR_CONNECTOR: return Google Calendar; case EnumConnectorName.GOOGLE_GMAIL_CONNECTOR: return Gmail; case EnumConnectorName.GOOGLE_DRIVE_CONNECTOR: return Google Drive; case EnumConnectorName.AIRTABLE_CONNECTOR: return Airtable; case EnumConnectorName.CONFLUENCE_CONNECTOR: return Confluence; case EnumConnectorName.BOOKSTACK_CONNECTOR: return BookStack; case EnumConnectorName.CLICKUP_CONNECTOR: return ClickUp; case EnumConnectorName.LUMA_CONNECTOR: return ; case EnumConnectorName.ELASTICSEARCH_CONNECTOR: return Elasticsearch; case EnumConnectorName.WEBCRAWLER_CONNECTOR: return ; case EnumConnectorName.YOUTUBE_CONNECTOR: return YouTube; case EnumConnectorName.CIRCLEBACK_CONNECTOR: return ; // Additional cases for non-enum connector types case "YOUTUBE_CONNECTOR": return YouTube; case "CIRCLEBACK": return ; case "CRAWLED_URL": return ; case "YOUTUBE_VIDEO": return YouTube; case "MICROSOFT_TEAMS": case "ms-teams": return Microsoft Teams; case "ZOOM": case "zoom": return Zoom; case "FILE": return ; case "NOTE": return ; case "EXTENSION": return ; case "DEEP": return ; case "DEEPER": return ; case "DEEPEST": return ; default: return ; } };