"use client"; import { RiShoppingBag3Line } from "@remixicon/react"; import MoneyValues from "@/components/money-values"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Progress } from "@/components/ui/progress"; import { WidgetEmptyState } from "@/components/widget-empty-state"; import type { CardDetailData } from "@/lib/relatorios/cartoes-report"; type CardTopExpensesProps = { data: CardDetailData["topExpenses"]; }; export function CardTopExpenses({ data }: CardTopExpensesProps) { if (data.length === 0) { return ( Top 10 Gastos do Mês } title="Nenhum gasto encontrado" description="Quando houver gastos registrados, eles aparecerão aqui." /> ); } const maxAmount = Math.max(...data.map((e) => e.amount)); return ( Top 10 Gastos do Mês
{data.map((expense, index) => (
{/* Rank number */}
{index + 1}
{/* Name and details */}
{expense.name}
{expense.date} {expense.category && ( {expense.category} )}
{/* Value */}
{/* Progress bar */}
))}
); }