"use client"; import { DollarSign, Eye, ShoppingCart, TrendingDown, TrendingUp, Users, } from "lucide-react"; import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent, } from "@/components/ui/chart"; import { cn } from "@/lib/utils"; interface ChartGroup7Props { className?: string; } const weekdayFormatter = new Intl.DateTimeFormat("fa-IR", { weekday: "short", }); const currencyFormatter = new Intl.NumberFormat("fa-IR", { style: "currency", currency: "IRR", minimumFractionDigits: 0, maximumFractionDigits: 0, }); const compactCurrencyFormatter = new Intl.NumberFormat("fa-IR", { style: "currency", currency: "IRR", notation: "compact", minimumFractionDigits: 0, maximumFractionDigits: 1, }); const numberFormatter = new Intl.NumberFormat("fa-IR", { maximumFractionDigits: 0, }); const percentChangeFormatter = new Intl.NumberFormat("fa-IR", { maximumFractionDigits: 1, minimumFractionDigits: 1, signDisplay: "exceptZero", }); const chartData = [ { day: weekdayFormatter.format(new Date(2025, 0, 6)), revenue: 4200, orders: 42, visitors: 1200, }, { day: weekdayFormatter.format(new Date(2025, 0, 7)), revenue: 5100, orders: 51, visitors: 1450, }, { day: weekdayFormatter.format(new Date(2025, 0, 8)), revenue: 4800, orders: 48, visitors: 1380, }, { day: weekdayFormatter.format(new Date(2025, 0, 9)), revenue: 6200, orders: 62, visitors: 1720, }, { day: weekdayFormatter.format(new Date(2025, 0, 10)), revenue: 7100, orders: 71, visitors: 1980, }, { day: weekdayFormatter.format(new Date(2025, 0, 11)), revenue: 5400, orders: 54, visitors: 1540, }, { day: weekdayFormatter.format(new Date(2025, 0, 12)), revenue: 4100, orders: 41, visitors: 1180, }, ]; const chartConfig = { revenue: { label: "درآمد", color: "var(--chart-1)" }, } satisfies ChartConfig; const stats = [ { title: "درآمد", value: currencyFormatter.format( chartData.reduce((sum, d) => sum + d.revenue, 0), ), change: 12.5, icon: DollarSign, }, { title: "سفارش‌ها", value: numberFormatter.format( chartData.reduce((sum, d) => sum + d.orders, 0), ), change: 8.2, icon: ShoppingCart, }, { title: "بازدیدکنندگان", value: numberFormatter.format( chartData.reduce((sum, d) => sum + d.visitors, 0), ), change: -2.1, icon: Eye, }, { title: "مشتریان", value: numberFormatter.format(284), change: 15.3, icon: Users, }, ]; const ChartGroup7 = ({ className }: ChartGroup7Props) => { return (
{stats.map((stat, index) => { const Icon = stat.icon; const isPositive = stat.change >= 0; return (
{isPositive ? (

{stat.value}

); })}
درآمد هفتگی درآمد روزانه در هفته گذشته compactCurrencyFormatter.format(Number(v)) } /> currencyFormatter.format(Number(value)) } /> } cursor={{ stroke: "var(--border)", strokeDasharray: "4 4" }} />
); }; export { ChartGroup7 };