"use client"; import { Check, Plus, Search } from "lucide-react"; import { useMemo, useState } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { cn } from "@/lib/utils"; interface IntegrationItem { image: string; title: string; description: string; isConnected?: boolean; category: string; className?: string; } interface IntegrationCardProps { integration: IntegrationItem; onToggle?: (title: string) => void; } const IntegrationCard = ({ integration, onToggle }: IntegrationCardProps) => { return (
{`آیکون

{integration.title}

{integration.description}

{integration.category}
); }; interface SettingsIntegrations7Props { className?: string; heading?: string; subHeading?: string; integrations?: IntegrationItem[]; } const SettingsIntegrations7 = ({ className, heading = "بازارچه یکپارچه‌سازی", subHeading = "ابزارهای فروش و پشتیبانی را وصل کنید تا داده‌ها در CRM جاری بمانند.", integrations: initialIntegrations = [ { 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/google-icon.svg", title: "Google Drive", description: "اسناد معامله را خودکار همگام و پشتیبان کنید.", isConnected: true, category: "فایل و اسناد", }, { image: "/block-media/shadcnblocks/block/logos/dropbox-icon.svg", title: "Dropbox", description: "اسناد مشتری را بدون خروج از CRM باز کنید.", 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: "استقرار خودکار را با رویدادهای محصول همگام کنید.", 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/stripe-icon.svg", title: "Stripe", description: "پرداخت و تمدید اشتراک را پردازش کنید.", isConnected: true, category: "پرداخت و صورتحساب", }, ], }: SettingsIntegrations7Props) => { const [integrations, setIntegrations] = useState(initialIntegrations); const [searchValue, setSearchValue] = useState(""); const filteredIntegrations = useMemo(() => { if (!searchValue) return integrations; return integrations.filter( (i) => i.title.toLowerCase().includes(searchValue.toLowerCase()) || i.category.toLowerCase().includes(searchValue.toLowerCase()), ); }, [integrations, searchValue]); const handleToggle = (title: string) => { setIntegrations((prev) => prev.map((i) => i.title === title ? { ...i, isConnected: !i.isConnected } : i, ), ); }; const connectedCount = integrations.filter((i) => i.isConnected).length; return (

{heading}

{subHeading}

{connectedCount.toLocaleString("fa-IR")} از{" "} {integrations.length.toLocaleString("fa-IR")} سرویس متصل است

setSearchValue(e.target.value)} />
{filteredIntegrations.map((integration) => ( ))}
{filteredIntegrations.length === 0 && (

نتیجه‌ای برای «{searchValue}» پیدا نشد

)}
); }; export { SettingsIntegrations7 };