import { Minus, TrendingDown, TrendingUp } from "lucide-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { cn } from "@/lib/utils"; const formatNumber = (value: number) => value.toLocaleString("fa-IR"); const formatChangeAmount = (value: number) => new Intl.NumberFormat("fa-IR", { signDisplay: "exceptZero", }).format(value); interface LeaderboardItem { name: string; value: string; change: "up" | "down" | "same"; changeAmount?: string; } interface Leaderboard3Props { title?: string; description?: string; items?: LeaderboardItem[]; className?: string; } const defaultItems: LeaderboardItem[] = [ { name: "SEO و محتوای ارگانیک", value: formatNumber(12450), change: "up", changeAmount: formatChangeAmount(2340), }, { name: "ورود مستقیم", value: formatNumber(8230), change: "up", changeAmount: formatChangeAmount(890), }, { name: "شبکه‌های اجتماعی B2B", value: formatNumber(5120), change: "down", changeAmount: formatChangeAmount(-320), }, { name: "ارجاع همکاران", value: formatNumber(3890), change: "same", }, { name: "ایمیل بازاریابی", value: formatNumber(2150), change: "up", changeAmount: formatChangeAmount(180), }, ]; const Leaderboard3 = ({ title = "کانال‌های جذب سرنخ", description = "سهم هر کانال از سرنخ‌های واجد شرایط", items = defaultItems, className, }: Leaderboard3Props) => { return ( {title} {description}
{items.map((item, index) => (
{formatNumber(index + 1)} {item.name}
{item.value}
{item.change === "up" && } {item.change === "down" && ( )} {item.change === "same" && } {item.changeAmount && {item.changeAmount}}
))}
); }; export { Leaderboard3 };