"use client"; import { GitPullRequest, Star } from "lucide-react"; import { useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; const CATEGORIES = [ "React", "TailwindCSS", "TypeScript", "Express", "MongoDB", "Python", ] as const; const ROLE_LABELS = { author: "مدیریت فروش", contributor: "سامانه CRM", } as const; interface Project { id: string; title: string; description: string; category: string[]; link: string; stars: number; contributions: number; pullRequests: number; role: "author" | "contributor"; } const PROJECTS: Project[] = [ { id: "react-portfolio", title: "react-portfolio", description: "تاریخچه تماس، قرارداد و تیکت هر مشتری را در یک صفحه ببینید و بدون جستجو تصمیم بگیرید.", category: ["React", "TailwindCSS", "TypeScript"], link: "#", stars: 5, contributions: 2, pullRequests: 15, role: "author", }, { id: "ai-chatbot", title: "ai-chatbot", description: "وظایف تکراری فروش را خودکار کنید و تمرکز تیم را روی بستن معامله بگذارید.", category: ["React", "TailwindCSS", "TypeScript", "Python"], link: "#", stars: 86, contributions: 12, pullRequests: 43, role: "contributor", }, { id: "task-manager-app", title: "task-manager-app", description: "بر اساس داده واقعی پایپ‌لاین، درآمد ماه‌های آینده را با اطمینان بیشتر تخمین بزنید.", category: ["React", "Express", "MongoDB", "TypeScript"], link: "#", stars: 34, contributions: 8, pullRequests: 27, role: "contributor", }, { id: "data-visualization-dashboard", title: "data-visualization-dashboard", description: "پیگیری‌های از قلم افتاده را قبل از سرد شدن سرنخ به‌موقع یادآوری کنید.", category: ["React", "TypeScript", "Python"], link: "#", stars: 92, contributions: 15, pullRequests: 56, role: "author", }, { id: "e-commerce-platform", title: "e-commerce-platform", description: "سرنخ‌ها را بر اساس منطقه، اندازه یا صنعت به نماینده مناسب اختصاص دهید.", category: ["React", "Express", "MongoDB", "TypeScript"], link: "#", stars: 127, contributions: 23, pullRequests: 89, role: "contributor", }, { id: "social-media-analyzer", title: "social-media-analyzer", description: "عملکرد هر نماینده و نرخ تبدیل هر مرحله را در یک داشبورد مقایسه کنید.", category: ["Python", "React", "MongoDB"], link: "#", stars: 73, contributions: 9, pullRequests: 31, role: "author", }, { id: "weather-forecast-app", title: "weather-forecast-app", description: "تاریخچه تماس، قرارداد و تیکت هر مشتری را در یک صفحه ببینید و بدون جستجو تصمیم بگیرید.", category: ["React", "TypeScript", "Python"], link: "#", stars: 45, contributions: 7, pullRequests: 22, role: "author", }, { id: "inventory-management-system", title: "inventory-management-system", description: "وظایف تکراری فروش را خودکار کنید و تمرکز تیم را روی بستن معامله بگذارید.", category: ["React", "Express", "MongoDB", "TypeScript"], link: "#", stars: 156, contributions: 28, pullRequests: 94, role: "contributor", }, { id: "fitness-tracking-platform", title: "fitness-tracking-platform", description: "بر اساس داده واقعی پایپ‌لاین، درآمد ماه‌های آینده را با اطمینان بیشتر تخمین بزنید.", category: ["React", "TailwindCSS", "MongoDB"], link: "#", stars: 112, contributions: 18, pullRequests: 67, role: "author", }, { id: "recipe-sharing-network", title: "recipe-sharing-network", description: "پیگیری‌های از قلم افتاده را قبل از سرد شدن سرنخ به‌موقع یادآوری کنید.", category: ["React", "Express", "MongoDB"], link: "#", stars: 89, contributions: 14, pullRequests: 41, role: "contributor", }, { id: "budget-tracker", title: "budget-tracker", description: "سرنخ‌ها را بر اساس منطقه، اندازه یا صنعت به نماینده مناسب اختصاص دهید.", category: ["React", "TypeScript", "MongoDB"], link: "#", stars: 67, contributions: 11, pullRequests: 35, role: "author", }, { id: "learning-management-system", title: "learning-management-system", description: "عملکرد هر نماینده و نرخ تبدیل هر مرحله را در یک داشبورد مقایسه کنید.", category: ["React", "Express", "TypeScript", "MongoDB"], link: "#", stars: 143, contributions: 25, pullRequests: 78, role: "contributor", }, ]; interface Feature295Props { className?: string; } const Feature295 = ({ className }: Feature295Props) => { const [selectedCategory, setSelectedCategory] = useState(null); const [selectedRole, setSelectedRole] = useState("all"); const [showAllProjects, setShowAllProjects] = useState(false); const filteredProjects = PROJECTS.filter((project) => { const matchesCategory = selectedCategory === null || project.category.includes(selectedCategory); const matchesRole = selectedRole === "all" || project.role === selectedRole; return matchesCategory && matchesRole; }); return (

پایپ‌لاین فروش را شفاف کنید

setSelectedCategory(null)} className={cn( "cursor-pointer", selectedCategory !== null && "bg-background", )} > معاملات را سریع‌تر به قرارداد برسانید {CATEGORIES.map((category) => ( setSelectedCategory(category)} className={cn( "cursor-pointer", selectedCategory !== category && "bg-background", )} > {category} ))}
{filteredProjects.length > 0 ? ( <>
{showAllProjects ? filteredProjects.map((project) => ( )) : filteredProjects .slice(0, 9) .map((project) => ( ))}
{filteredProjects.length > 9 && (
)} ) : (

پروفایل ۳۶۰ درجه مشتری

اتوماسیون مراحل فروش

)}
); }; export { Feature295 }; const ProjectCard = ({ project }: { project: Project }) => { return (

{project.title}

{project.stars.toLocaleString("fa-IR")}

{project.description}

{ROLE_LABELS[project.role]} {project.pullRequests.toLocaleString("fa-IR")}
); };