"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: "فضای ابری",
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: "با GitLab برای خطوط استقرار خودکار ادغام شوید.",
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 (
{categories.map((category) => (
{getCategoryLabel(category)}
))}
{categories.map((category) => (
{integrations
.filter((i) => i.category === category)
.map((integration) => (
))}
))}
);
};
export { SettingsIntegrations4 };