"use client"; import { RiDeleteBin5Line, RiFileList2Line, RiMailSendLine, RiPencilLine, RiVerifiedBadgeFill, } from "@remixicon/react"; import Image from "next/image"; import Link from "next/link"; import { Badge } from "@/shared/components/ui/badge"; import { Card } from "@/shared/components/ui/card"; import { PAYER_ROLE_ADMIN } from "@/shared/lib/payers/constants"; import { getAvatarSrc } from "@/shared/lib/payers/utils"; import type { Payer } from "./types"; interface PayerCardProps { payer: Payer; onEdit?: () => void; onRemove?: () => void; } export function PayerCard({ payer, onEdit, onRemove }: PayerCardProps) { const avatarSrc = getAvatarSrc(payer.avatarUrl); const isAdmin = payer.role === PAYER_ROLE_ADMIN; const isReadOnly = !payer.canEdit; return ( {/* Avatar posicionado sobre o header */}
{`Avatar
{/* Nome e badges */}

{payer.name}

{isAdmin ? ( ) : null} {payer.isAutoSend ? ( ) : null}
{/* Email */} {payer.email ? (

{payer.email}

) : (

Sem email cadastrado

)} {/* Status badges */}
{payer.status} {isReadOnly ? ( Somente leitura ) : null}
{/* Footer com links */}
{!isReadOnly && onEdit ? ( ) : null} detalhes {!isAdmin && !isReadOnly && onRemove ? ( ) : null}
); }