"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 = "اپلیکیشن‌ها و سرویس‌های محبوبتان را مرور و متصل کنید.", 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: "با تیم خود همکاری کنید", isConnected: true, category: "ارتباطات", }, { image: "/block-media/shadcnblocks/block/logos/google-icon.svg", title: "فضای ابری", 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: "فضای ابری Microsoft", 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: "پلتفرم DevOps", 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 };