"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.title}

{integration.category}

); }; interface SettingsIntegrations1Props { className?: string; heading?: string; subHeading?: string; title?: string; integrations?: IntegrationItem[]; } const SettingsIntegrations1 = ({ className, heading = "یکپارچه‌سازی‌ها", subHeading = "ابزارهای فروش، پشتیبانی و همکاری را به فضای کاری سامانه مدیریت ارتباط با مشتری متصل کنید.", 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 (

{heading}

{subHeading}

{title}

setSearchValue(e.target.value)} />

دسته‌بندی

{categories.map((category) => ( ))}
{filteredIntegrations.length > 0 ? ( filteredIntegrations.map((integration, i) => { return ( ); }) ) : (

نتیجه‌ای برای این جستجو پیدا نشد

)}
); }; export { SettingsIntegrations1 };