import { RiBarcodeLine, RiCheckboxCircleLine, RiHourglass2Line, RiWallet3Line, } from "@remixicon/react"; import { EstabelecimentoLogo } from "@/components/lancamentos/shared/estabelecimento-logo"; import MoneyValues from "@/components/shared/money-values"; import { WidgetEmptyState } from "@/components/shared/widget-empty-state"; import { CardContent } from "@/components/ui/card"; import { Progress } from "@/components/ui/progress"; import { buildBillStatusLabel } from "@/lib/dashboard/bills-helpers"; import type { PagadorBoletoItem, PagadorPaymentStatusData, } from "@/lib/pagadores/details"; import { cn } from "@/lib/utils/ui"; // --- PagadorBoletoCard --- type PagadorBoletoCardProps = { items: PagadorBoletoItem[]; }; export function PagadorBoletoCard({ items }: PagadorBoletoCardProps) { if (items.length === 0) { return ( } title="Nenhum boleto cadastrado para o período" description="Quando houver despesas registradas com boleto, elas aparecerão aqui." /> ); } return ( ); } // --- PagadorPaymentStatusCard --- type PagadorPaymentStatusCardProps = { data: PagadorPaymentStatusData; }; export function PagadorPaymentStatusCard({ data, }: PagadorPaymentStatusCardProps) { const { paidAmount, paidCount, pendingAmount, pendingCount, totalAmount } = data; if (totalAmount === 0) { return ( } title="Nenhuma despesa no período" description="Registre lançamentos para visualizar o status de pagamento." /> ); } const paidPercentage = (paidAmount / totalAmount) * 100; return (
Pago
({paidCount} registro{paidCount !== 1 ? "s" : ""})
Pendente
({pendingCount} registro{pendingCount !== 1 ? "s" : ""})
); }