import React from "react"; import { AvatarInitials } from "../AvatarInitials"; export interface PatientListItem { id: string; nome: string; cpf?: string; email?: string; telefoneFormatado?: string; // já formatado externamente convenio?: string | null; vip?: boolean; cidade?: string; estado?: string; // placeholders a serem preenchidos quando consultasService estiver pronto ultimoAtendimento?: string | null; // ISO ou texto humanizado proximoAtendimento?: string | null; } interface PatientListTableProps { pacientes: PatientListItem[]; onEdit: (paciente: PatientListItem) => void; onDelete: (paciente: PatientListItem) => void; onView?: (paciente: PatientListItem) => void; onSchedule?: (paciente: PatientListItem) => void; emptyMessage?: string; } const PatientListTable: React.FC = ({ pacientes, onEdit, onDelete, onView, onSchedule, emptyMessage = "Nenhum paciente encontrado.", }) => { return (
{pacientes.map((p) => ( ))} {pacientes.length === 0 && ( )}
Paciente Contato Local Último Atendimento Próximo Atendimento Convênio Ações
onView?.(p)} > {p.nome || "Sem nome"}
{p.cpf || "CPF não informado"}
{p.vip && (
VIP
)}
{p.email || "Não informado"}
{p.telefoneFormatado || "Telefone não informado"}
{p.cidade || p.estado ? `${p.cidade || ""}${p.cidade && p.estado ? "/" : ""}${ p.estado || "" }` : "—"} {p.ultimoAtendimento || "—"} {p.proximoAtendimento || "—"} {p.convenio || "Particular"} {onSchedule && ( )}
{emptyMessage}
); }; export default PatientListTable;