"use client"; import { RiExternalLinkLine, 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 { 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) => { const initials = buildInitials(payer.name); const hasValidPercentageChange = typeof payer.percentageChange === "number" && Number.isFinite(payer.percentageChange); const percentageChange = hasValidPercentageChange ? payer.percentageChange : null; return (
{initials}
{payer.name} {payer.isAdmin && ( )}

{payer.email ?? "Sem email cadastrado"}

); })}
)}
); }