"use client"; import { RiArrowUpDoubleLine } from "@remixicon/react"; import { useMemo } from "react"; import type { TopExpense, TopExpensesData, } from "@/features/dashboard/expenses/top-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 { formatTransactionDate } from "@/shared/utils/date"; type TopExpensesWidgetProps = { data: TopExpensesData; }; const shouldIncludeExpense = (expense: TopExpense) => { const normalizedName = expense.name.trim().toLowerCase(); if (normalizedName === "saldo inicial") { return false; } if (normalizedName.includes("fatura")) { return false; } return true; }; export function TopExpensesWidget({ data }: TopExpensesWidgetProps) { const expenses = useMemo( () => data.expenses.filter(shouldIncludeExpense), [data.expenses], ); return (
{expenses.length === 0 ? ( } title="Nenhuma despesa encontrada" description="Quando houver despesas registradas, elas aparecerão aqui." /> ) : (
{expenses.map((expense, index) => { return (
{index + 1}

{expense.name}

{formatTransactionDate(expense.purchaseDate)}

); })}
)}
); }