import { Badge, Card, Group, Stack, Text, Title, useMantineColorScheme, } from "@mantine/core"; interface TopProduct { rank: number; name: string; umkmName: string; revenue: number; quantitySold: number; trend: number; } interface TopProductsProps { products?: TopProduct[]; } const formatCurrency = (value: number) => { if (value >= 1000000) { return `${(value / 1000000).toFixed(1)}M`; } if (value >= 1000) { return `${(value / 1000).toFixed(0)}K`; } return value.toString(); }; const formatNumber = (value: number) => { if (value >= 1000) { return `${(value / 1000).toFixed(1)}K`; } return value.toString(); }; export const TopProducts = ({ products }: TopProductsProps) => { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === "dark"; const defaultProducts: TopProduct[] = [ { rank: 1, name: "Beras Premium Organik", umkmName: "Warung Pak Joko", revenue: 8500000, quantitySold: 650, trend: 12, }, { rank: 2, name: "Keripik Singkong", umkmName: "Ibu Sari Snack", revenue: 4200000, quantitySold: 320, trend: 8, }, { rank: 3, name: "Madu Alami", umkmName: "Peternakan Lebah", revenue: 3750000, quantitySold: 150, trend: 5, }, ]; const displayProducts = products || defaultProducts; const getRankColor = (rank: number) => { if (rank === 1) return "yellow"; if (rank === 2) return "gray"; if (rank === 3) return "orange"; return "blue"; }; return ( Top 3 Produk Terlaris {displayProducts.map((product) => ( {product.rank} {product.name} {product.umkmName} Rp {formatCurrency(product.revenue)} {formatNumber(product.quantitySold)} terjual = 0 ? "green" : "red"} size="sm" > {product.trend >= 0 ? "+" : ""} {product.trend}% ))} ); };