"use client";
import { Filter, Search } from "lucide-react";
import { useMemo, useState } from "react";
import { Button } from "@/components/ui/button";
import { Checkbox } from "@/components/ui/checkbox";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
import { cn } from "@/lib/utils";
interface IntegrationItem {
image: string;
title: string;
category: string;
className?: string;
}
interface IntegrationCardProps {
integration: IntegrationItem;
className?: string;
}
const IntegrationCard = ({ integration, className }: IntegrationCardProps) => {
return (
{integration.title}
{integration.category}
);
};
interface SettingsIntegrations1Props {
className?: string;
heading?: string;
subHeading?: string;
title?: string;
integrations?: IntegrationItem[];
}
const SettingsIntegrations1 = ({
className,
heading = "یکپارچهسازیها",
subHeading = "ابزارهای فروش، پشتیبانی و همکاری را به فضای کاری CRM متصل کنید.",
title = "کاتالوگ یکپارچهسازیها",
integrations = [
{
image:
"/block-media/shadcnblocks/block/logos/slack-icon.svg",
title: "Slack",
category: "ارتباطات تیمی",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/drive.svg",
title: "Google Drive",
category: "فایل و اسناد",
},
{
image:
"/block-media/shadcnblocks/block/logos/notion-icon.svg",
title: "Notion",
category: "دانش سازمانی",
className: "dark:invert",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/jira.svg",
title: "Jira",
category: "تحویل محصول",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/asana.svg",
title: "Asana",
category: "تحویل محصول",
},
{
image:
"/block-media/shadcnblocks/block/logos/dropbox-icon.svg",
title: "Dropbox",
category: "فایل و اسناد",
},
{
image:
"/block-media/shadcnblocks/block/logos/figma-icon.svg",
title: "Figma",
category: "طراحی محصول",
},
{
image:
"/block-media/shadcnblocks/block/logos/github-icon.svg",
title: "GitHub",
category: "مهندسی",
className: "dark:invert",
},
{
image:
"/block-media/shadcnblocks/block/ecommerce/payment-methods/stripe.svg",
title: "Stripe",
category: "پرداخت و صورتحساب",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/confluence.svg",
title: "Confluence",
category: "دانش سازمانی",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/monday.svg",
title: "Monday",
category: "تحویل محصول",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/excel.svg",
title: "Excel",
category: "گزارشگیری",
},
{
image:
"/block-media/shadcnblocks/block/logos/vercel-icon.svg",
title: "Vercel",
category: "مهندسی",
className: "dark:invert",
},
{
image:
"/block-media/shadcnblocks/block/mainline/logos/retool.svg",
title: "Retool",
category: "مهندسی",
className: "dark:invert",
},
],
}: SettingsIntegrations1Props) => {
const [searchValue, setSearchValue] = useState("");
const [selectedCategories, setSelectedCategories] = useState([]);
const categories = useMemo(() => {
return [...new Set(integrations.map((i) => i.category))];
}, [integrations]);
const filteredIntegrations = useMemo(() => {
return integrations.filter((integration) => {
const matchesSearch = integration.title
.toLowerCase()
.includes(searchValue.toLowerCase());
const matchesCategory =
selectedCategories.length === 0 ||
selectedCategories.includes(integration.category);
return matchesSearch && matchesCategory;
});
}, [integrations, searchValue, selectedCategories]);
const toggleCategory = (category: string) => {
setSelectedCategories((prev) =>
prev.includes(category)
? prev.filter((c) => c !== category)
: [...prev, category],
);
};
return (
{title}
setSearchValue(e.target.value)}
/>
دستهبندی
{categories.map((category) => (
))}
{filteredIntegrations.length > 0 ? (
filteredIntegrations.map((integration, i) => {
return (
);
})
) : (
نتیجهای برای این جستجو پیدا نشد
)}
);
};
export { SettingsIntegrations1 };