"use client"; import { RiDeleteBin5Line, RiEyeLine, RiMailSendLine, RiPencilLine, RiVerifiedBadgeFill, } from "@remixicon/react"; import Image from "next/image"; import Link from "next/link"; import { useMemo } from "react"; import { Badge } from "@/components/ui/badge"; import { Card } from "@/components/ui/card"; import { PAGADOR_ROLE_ADMIN } from "@/lib/pagadores/constants"; import { getAvatarSrc } from "@/lib/pagadores/utils"; import type { Pagador } from "./types"; interface PagadorCardProps { pagador: Pagador; onEdit?: () => void; onRemove?: () => void; } export function PagadorCard({ pagador, onEdit, onRemove }: PagadorCardProps) { const avatarSrc = useMemo( () => getAvatarSrc(pagador.avatarUrl), [pagador.avatarUrl], ); const isAdmin = pagador.role === PAGADOR_ROLE_ADMIN; const isReadOnly = !pagador.canEdit; return ( {/* Avatar posicionado sobre o header */}
{`Avatar
{/* Nome e badges */}

{pagador.name}

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

{pagador.email}

) : (

Sem email cadastrado

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