"use client"; import { ChevronRight, Circle, Search } from "lucide-react"; import { useMemo, useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Input } from "@/components/ui/input"; import { ScrollArea } from "@/components/ui/scroll-area"; import { cn } from "@/lib/utils"; interface IntegrationItem { image: string; title: string; description: string; isConnected?: boolean; category: string; className?: string; } interface SettingsIntegrations8Props { className?: string; heading?: string; subHeading?: string; integrations?: IntegrationItem[]; } const SettingsIntegrations8 = ({ className, heading = "یکپارچه‌سازی‌ها", subHeading = "ابزارهای موردنیاز تیم فروش را پیدا و به CRM متصل کنید.", integrations = [ { image: "/block-media/shadcnblocks/block/logos/slack-icon.svg", title: "Slack", description: "هشدار لید و تیکت را به کانال تیم بفرستید", isConnected: true, category: "ارتباطات تیمی", }, { image: "/block-media/shadcnblocks/block/logos/discord-icon.svg", title: "Discord", description: "به‌روزرسانی پایپ‌لاین را در سرور تیم منتشر کنید", category: "ارتباطات تیمی", }, { image: "/block-media/shadcnblocks/block/logos/microsoft-teams-icon.svg", title: "Microsoft Teams", description: "گفتگو و هماهنگی فروش در Teams", isConnected: true, category: "ارتباطات تیمی", }, { image: "/block-media/shadcnblocks/block/logos/google-icon.svg", title: "Google Drive", description: "اسناد معامله را همگام کنید", isConnected: true, category: "فایل و اسناد", }, { image: "/block-media/shadcnblocks/block/logos/dropbox-icon.svg", title: "Dropbox", description: "فضای فایل امن برای اسناد مشتری", category: "فایل و اسناد", }, { image: "/block-media/shadcnblocks/block/logos/microsoft-onedrive-icon.svg", title: "OneDrive", description: "همگام‌سازی فایل‌های OneDrive", category: "فایل و اسناد", }, { image: "/block-media/shadcnblocks/block/logos/github-icon.svg", title: "GitHub", description: "مخزن کد و همکاری مهندسی", isConnected: true, category: "مهندسی", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/gitlab-icon.svg", title: "GitLab", description: "CI/CD و تحویل محصول", category: "مهندسی", }, { image: "/block-media/shadcnblocks/block/logos/vercel-icon.svg", title: "Vercel", description: "استقرار لندینگ و پورتال", category: "مهندسی", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/figma-icon.svg", title: "Figma", description: "دارایی‌های بصری کمپین", isConnected: true, category: "طراحی محصول", }, { image: "/block-media/shadcnblocks/block/logos/notion-icon.svg", title: "Notion", description: "دانش و پلی‌بوک فروش", category: "عملیات فروش", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/linear-icon.svg", title: "Linear", description: "پیگیری کارهای محصول", isConnected: true, category: "عملیات فروش", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/jira-icon.svg", title: "Jira", description: "هماهنگی تحویل پروژه", category: "عملیات فروش", }, { image: "/block-media/shadcnblocks/block/logos/stripe-icon.svg", title: "Stripe", description: "پرداخت و صورتحساب", isConnected: true, category: "پرداخت و صورتحساب", }, ], }: SettingsIntegrations8Props) => { const [searchValue, setSearchValue] = useState(""); const [selectedCategory, setSelectedCategory] = useState(null); const categories = useMemo(() => { return [...new Set(integrations.map((i) => i.category))]; }, [integrations]); const filteredIntegrations = useMemo(() => { return integrations.filter((integration) => { const matchesSearch = !searchValue || integration.title.toLowerCase().includes(searchValue.toLowerCase()) || integration.description .toLowerCase() .includes(searchValue.toLowerCase()); const matchesCategory = !selectedCategory || integration.category === selectedCategory; return matchesSearch && matchesCategory; }); }, [integrations, searchValue, selectedCategory]); const getCategoryCount = (category: string) => { return integrations.filter((i) => i.category === category).length; }; return (

{heading}

{subHeading}

{/* Sidebar */}
setSearchValue(e.target.value)} />
{categories.map((category) => ( ))}
{/* Main content */}
); }; export { SettingsIntegrations8 };