import MoneyValues from "@/components/money-values"; import type { RecentTransactionsData } from "@/lib/dashboard/recent-transactions"; import { RiExchangeLine } from "@remixicon/react"; import Image from "next/image"; import { WidgetEmptyState } from "../widget-empty-state"; type RecentTransactionsWidgetProps = { data: RecentTransactionsData; }; const resolveLogoPath = (logo: string | null) => { if (!logo) { return null; } if (/^(https?:\/\/|data:)/.test(logo)) { return logo; } return logo.startsWith("/") ? logo : `/logos/${logo}`; }; const buildInitials = (value: string) => { const parts = value.trim().split(/\s+/).filter(Boolean); if (parts.length === 0) { return "LC"; } if (parts.length === 1) { const firstPart = parts[0]; return firstPart ? firstPart.slice(0, 2).toUpperCase() : "LC"; } const firstChar = parts[0]?.[0] ?? ""; const secondChar = parts[1]?.[0] ?? ""; return `${firstChar}${secondChar}`.toUpperCase() || "LC"; }; const formatTransactionDate = (date: Date) => { const formatter = new Intl.DateTimeFormat("pt-BR", { weekday: "short", day: "2-digit", month: "short", timeZone: "UTC", }); const formatted = formatter.format(date); // Capitaliza a primeira letra do dia da semana return formatted.charAt(0).toUpperCase() + formatted.slice(1); }; export function RecentTransactionsWidget({ data, }: RecentTransactionsWidgetProps) { return (
{data.transactions.length === 0 ? ( } title="Nenhum lançamento encontrado" description="Quando houver despesas registradas, elas aparecerão aqui." /> ) : ( )}
); }