import { RiRefreshLine } from "@remixicon/react"; import type { RecurringExpensesData } from "@/features/dashboard/expenses/recurring-expenses-queries"; import { EstablishmentLogo } from "@/shared/components/entity-avatar"; import MoneyValues from "@/shared/components/money-values"; import { WidgetEmptyState } from "@/shared/components/widgets/widget-empty-state"; import { getPaymentMethodIcon } from "@/shared/utils/icons"; type RecurringExpensesWidgetProps = { data: RecurringExpensesData; }; const formatOccurrences = (value: number | null) => { if (!value) { return "Repete mensalmente"; } return `Repete por ${value} ${value === 1 ? "mês" : "meses"}`; }; export function RecurringExpensesWidget({ data, }: RecurringExpensesWidgetProps) { if (data.expenses.length === 0) { return ( } title="Nenhuma despesa recorrente encontrada" description="Lançamentos recorrentes aparecerão aqui conforme forem registrados." /> ); } return (
{[...data.expenses] .sort((a, b) => b.amount - a.amount) .map((expense) => { return (

{expense.name}

{getPaymentMethodIcon(expense.paymentMethod)} {expense.paymentMethod} {formatOccurrences(expense.recurrenceCount)}
); })}
); }