From d966e40608e08cf9c5238ec2c9d891e0efd632f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Gustavo?= Date: Mon, 24 Nov 2025 22:10:03 -0300 Subject: [PATCH] ajustes na interface do paciente --- susconecta/app/paciente/page.tsx | 1 - .../paciente/resultados/ResultadosClient.tsx | 23 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/susconecta/app/paciente/page.tsx b/susconecta/app/paciente/page.tsx index b369a50..22ff30e 100644 --- a/susconecta/app/paciente/page.tsx +++ b/susconecta/app/paciente/page.tsx @@ -1698,7 +1698,6 @@ export default function PacientePage() {
-
))} diff --git a/susconecta/app/paciente/resultados/ResultadosClient.tsx b/susconecta/app/paciente/resultados/ResultadosClient.tsx index f03e619..d327823 100644 --- a/susconecta/app/paciente/resultados/ResultadosClient.tsx +++ b/susconecta/app/paciente/resultados/ResultadosClient.tsx @@ -9,7 +9,7 @@ import { Card } from '@/components/ui/card' import { Toggle } from '@/components/ui/toggle' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Badge } from '@/components/ui/badge' -import { Avatar, AvatarFallback } from '@/components/ui/avatar' +import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar' import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' import { @@ -31,6 +31,7 @@ import { buscarPacientes, listarDisponibilidades, listarExcecoes, + getAvatarPublicUrl, type Medico, } from '@/lib/api' @@ -66,6 +67,9 @@ export default function ResultadosClient() { const [patientId, setPatientId] = useState(null) const [medicos, setMedicos] = useState([]) const [loadingMedicos, setLoadingMedicos] = useState(false) + + // Avatares dos médicos + const [medicosAvatars, setMedicosAvatars] = useState>({}) // agenda por médico e loading por médico const [agendaByDoctor, setAgendaByDoctor] = useState>({}) @@ -250,6 +254,22 @@ export default function ResultadosClient() { return () => { mounted = false } }, [medicoFiltro, paramsSync]) + // Carregar avatares dos médicos quando a lista mudar + useEffect(() => { + if (!medicos || medicos.length === 0) return + + const avatars: Record = {} + + // Gerar URLs dos avatares sem fazer verificação (deixar o browser carregar) + for (const medico of medicos) { + if (!medico.id) continue + // Usar jpg como padrão (mais comum) + avatars[medico.id] = getAvatarPublicUrl(medico.id, 'jpg') + } + + setMedicosAvatars(avatars) + }, [medicos]) + // 3) Carregar horários disponíveis para um médico (próximos 7 dias) e agrupar por dia async function loadAgenda(doctorId: string): Promise<{ iso: string; label: string } | null> { if (!doctorId) return null @@ -911,6 +931,7 @@ export default function ResultadosClient() { {/* Header com Avatar, Nome, Especialidade e Botão Ver Perfil */}
+ {medicosAvatars[id] && } {nome.split(' ').map(n => n[0]).join('').substring(0, 2).toUpperCase()}