"use client"; import { useState } from "react"; import { ScrollableTabsList } from "@/components/shadcnblocks/scrollable-tabslist"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; 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.isConnected && ( متصل )}
); }; interface SettingsIntegrations4Props { className?: string; heading?: string; subHeading?: string; integrations?: IntegrationItem[]; } const SettingsIntegrations4 = ({ className, heading = "یکپارچه‌سازی‌ها", subHeading = "کانال‌های فروش، فایل‌ها و پرداخت را به فضای کاری سامانه مدیریت ارتباط با مشتری وصل کنید.", integrations: initialIntegrations = [ { image: "/block-media/shadcnblocks/block/logos/slack-icon.svg", title: "Slack", description: "هشدار لید و تیکت را لحظه‌ای به کانال تیم بفرستید.", isConnected: true, category: "communication", }, { image: "/block-media/shadcnblocks/block/logos/discord-icon.svg", title: "Discord", description: "هشدارهای پایپ‌لاین را به سرور تیم بفرستید.", category: "communication", }, { image: "/block-media/shadcnblocks/block/logos/microsoft-teams-icon.svg", title: "Microsoft Teams", description: "گفتگوهای فروش را در Teams ادامه دهید.", category: "communication", }, { image: "/block-media/shadcnblocks/block/logos/google-icon.svg", title: "Google Drive", description: "اسناد معامله را با رکوردهای سامانه مدیریت ارتباط با مشتری همگام کنید.", isConnected: true, category: "storage", }, { image: "/block-media/shadcnblocks/block/logos/dropbox-icon.svg", title: "Dropbox", description: "اسناد قرارداد را امن ذخیره و اشتراک بگذارید.", category: "storage", }, { image: "/block-media/shadcnblocks/block/logos/microsoft-onedrive-icon.svg", title: "OneDrive", description: "فایل‌های مشتری را از OneDrive به سامانه مدیریت ارتباط با مشتری بیاورید.", category: "storage", }, { image: "/block-media/shadcnblocks/block/logos/github-icon.svg", title: "GitHub", description: "وب‌هوک مخزن را به گردش‌کار محصول وصل کنید.", isConnected: true, category: "development", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/gitlab-icon.svg", title: "GitLab", description: "خط لوله استقرار را با رویدادهای محصول همگام کنید.", category: "development", }, { image: "/block-media/shadcnblocks/block/logos/vercel-icon.svg", title: "Vercel", description: "لندینگ و پورتال مشتری را مستقر و پیش‌نمایش کنید.", category: "development", className: "dark:invert", }, { image: "/block-media/shadcnblocks/block/logos/stripe-icon.svg", title: "Stripe", description: "پرداخت و اشتراک مشتری را از سامانه مدیریت ارتباط با مشتری پیگیری کنید.", isConnected: true, category: "payments", }, { image: "/block-media/shadcnblocks/block/logos/paypal-icon.svg", title: "PayPal", description: "پرداخت آنلاین مشتریان را بپذیرید و ثبت کنید.", category: "payments", }, ], }: SettingsIntegrations4Props) => { const [integrations, setIntegrations] = useState(initialIntegrations); const categories = [...new Set(integrations.map((i) => i.category))]; const handleToggle = (title: string) => { setIntegrations((prev) => prev.map((i) => i.title === title ? { ...i, isConnected: !i.isConnected } : i, ), ); }; const getCategoryLabel = (category: string) => { const labels: Record = { communication: "ارتباطات تیمی", storage: "فایل و اسناد", development: "مهندسی", payments: "پرداخت و صورتحساب", }; return labels[category] ?? category; }; return (

{heading}

{subHeading}

{categories.map((category) => ( {getCategoryLabel(category)} ))}
{categories.map((category) => (
{integrations .filter((i) => i.category === category) .map((integration) => ( ))}
))}
); }; export { SettingsIntegrations4 };