"use client"; import { RiGroupLine, RiVerifiedBadgeFill } from "@remixicon/react"; import Link from "next/link"; import { PercentageChangeIndicator } from "@/features/dashboard/components/percentage-change-indicator"; import type { DashboardPagador } from "@/features/dashboard/lib/payers-queries"; import MoneyValues from "@/shared/components/money-values"; import { Avatar, AvatarFallback, AvatarImage, } from "@/shared/components/ui/avatar"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/shared/components/ui/tooltip"; import { WidgetEmptyState } from "@/shared/components/widgets/widget-empty-state"; import { getAvatarSrc } from "@/shared/lib/payers/utils"; import { buildInitials } from "@/shared/utils/initials"; type PayersWidgetProps = { payers: DashboardPagador[]; }; export function PayersWidget({ payers }: PayersWidgetProps) { return (
{payers.length === 0 ? ( } title="Nenhuma pessoa para o período" description="Quando houver despesas associadas a pessoas, elas aparecerão aqui." /> ) : (
{payers.map((payer, index) => { const initials = buildInitials(payer.name); const hasValidPercentageChange = typeof payer.percentageChange === "number" && Number.isFinite(payer.percentageChange); const percentageChange = hasValidPercentageChange ? payer.percentageChange : null; return (
{index + 1}
{initials}
{payer.name} {payer.isAdmin && ( Pessoa principal Pessoa principal )}

Despesas no período

{percentageChange !== null ? ( vs. mês ant. ) : null}
); })}
)}
); }