diff --git a/susconecta/app/resultados/page.tsx b/susconecta/app/resultados/page.tsx
new file mode 100644
index 0000000..2933e39
--- /dev/null
+++ b/susconecta/app/resultados/page.tsx
@@ -0,0 +1,977 @@
+'use client'
+
+import { useMemo, useState } from 'react'
+import { useSearchParams, useRouter } from 'next/navigation'
+import { Button } from '@/components/ui/button'
+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 { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
+import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'
+import {
+ Building2,
+ Filter,
+ Globe,
+ HeartPulse,
+ Languages,
+ MapPin,
+ ShieldCheck,
+ Star,
+ Stethoscope,
+ ChevronRight,
+ UserRound
+} from 'lucide-react'
+import { cn } from '@/lib/utils'
+
+type TipoConsulta = 'teleconsulta' | 'local'
+
+type Medico = {
+ id: number
+ nome: string
+ especialidade: string
+ crm: string
+ categoriaHero: string
+ avaliacao: number
+ avaliacaoQtd: number
+ convenios: string[]
+ endereco?: string
+ bairro?: string
+ cidade?: string
+ precoLocal?: string
+ precoTeleconsulta?: string
+ atendeLocal: boolean
+ atendeTele: boolean
+ agenda: {
+ label: string
+ data: string
+ horarios: string[]
+ }[]
+ experiencia: string[]
+ planosSaude: string[]
+ consultorios: { nome: string; endereco: string; telefone: string }[]
+ servicos: { nome: string; preco: string }[]
+ opinioes: { id: number; paciente: string; data: string; nota: number; comentario: string }[]
+}
+
+const especialidadesHero = ['Psicólogo', 'Médico clínico geral', 'Pediatra', 'Dentista', 'Ginecologista', 'Veja mais']
+
+const medicosBase: Medico[] = [
+ {
+ id: 1,
+ nome: 'Paula Pontes',
+ especialidade: 'Psicóloga clínica',
+ crm: 'CRP SE 19/4244',
+ categoriaHero: 'Psicólogo',
+ avaliacao: 4.9,
+ avaliacaoQtd: 23,
+ convenios: ['Amil', 'Unimed'],
+ endereco: 'Av. Doutor José Machado de Souza, 200 - Jardins',
+ bairro: 'Jardins',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 180',
+ precoTeleconsulta: 'R$ 160',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '10:00', '11:00', '12:00', '13:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['11:00', '12:00', '13:00', '14:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 2,
+ nome: 'Marcos Vieira',
+ especialidade: 'Psicólogo comportamental',
+ crm: 'CRP SE 24/1198',
+ categoriaHero: 'Psicólogo',
+ avaliacao: 4.7,
+ avaliacaoQtd: 31,
+ convenios: ['SulAmérica', 'Bradesco Saúde'],
+ endereco: 'Rua Juarez Távora, 155 - São José',
+ bairro: 'São José',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 190',
+ precoTeleconsulta: 'R$ 150',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['14:00', '16:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['10:00', '11:00', '12:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:00', '10:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 3,
+ nome: 'Julia Azevedo',
+ especialidade: 'Psicóloga infantil',
+ crm: 'CRP SE 23/4476',
+ categoriaHero: 'Psicólogo',
+ avaliacao: 4.95,
+ avaliacaoQtd: 45,
+ convenios: ['NotreDame Intermédica', 'Particular'],
+ precoTeleconsulta: 'R$ 140',
+ atendeLocal: false,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:30', '11:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['08:30', '10:00', '11:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 4,
+ nome: 'Rafael Sousa',
+ especialidade: 'Neuropsicólogo',
+ crm: 'CRP BA 03/8874',
+ categoriaHero: 'Psicólogo',
+ avaliacao: 4.82,
+ avaliacaoQtd: 52,
+ convenios: ['Amil', 'Particular'],
+ endereco: 'Rua Riachão, 77 - Centro',
+ bairro: 'Centro',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 210',
+ atendeLocal: true,
+ atendeTele: false,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '13:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:00', '12:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: ['09:30'] }
+ ]
+ },
+ {
+ id: 5,
+ nome: 'Lucas Amorim',
+ especialidade: 'Clínico geral',
+ crm: 'CRM SE 5122',
+ categoriaHero: 'Médico clínico geral',
+ avaliacao: 4.88,
+ avaliacaoQtd: 98,
+ convenios: ['Amil', 'Bradesco Saúde'],
+ endereco: 'Av. Beira Mar, 402 - Coroa do Meio',
+ bairro: 'Coroa do Meio',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 220',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00', '11:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:30', '14:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:30', '12:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 6,
+ nome: 'Dr. João Silva',
+ especialidade: 'Ortopedista',
+ crm: 'CRM RJ 90876',
+ categoriaHero: 'Veja mais',
+ avaliacao: 4.7,
+ avaliacaoQtd: 96,
+ convenios: ['Unimed', 'Bradesco Saúde'],
+ endereco: 'Av. Beira Mar, 1450 - Farolândia',
+ bairro: 'Farolândia',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 310',
+ atendeLocal: true,
+ atendeTele: false,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 7,
+ nome: 'Dra. Beatriz Moura',
+ especialidade: 'Ginecologista',
+ crm: 'CRM BA 52110',
+ categoriaHero: 'Veja mais',
+ avaliacao: 4.95,
+ avaliacaoQtd: 186,
+ convenios: ['NotreDame Intermédica', 'Particular', 'Amil'],
+ endereco: 'Rua Tobias Barreto, 512 - Bairro São José',
+ bairro: 'São José',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 280',
+ precoTeleconsulta: 'R$ 240',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['14:00', '15:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '11:00', '16:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:30', '12:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: ['11:30'] }
+ ]
+ },
+ {
+ id: 8,
+ nome: 'Dr. André Lemos',
+ especialidade: 'Gastroenterologista',
+ crm: 'CRM SE 9033',
+ categoriaHero: 'Veja mais',
+ avaliacao: 4.75,
+ avaliacaoQtd: 105,
+ convenios: ['SulAmérica', 'Unimed'],
+ endereco: 'Rua Arauá, 22 - Centro',
+ bairro: 'Centro',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 340',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['13:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:00', '11:00', '15:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:30', '10:15'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 9,
+ nome: 'Dra. Fernanda Lima',
+ especialidade: 'Médico clínico geral',
+ crm: 'CRM SE 7890',
+ categoriaHero: 'Médico clínico geral',
+ avaliacao: 4.9,
+ avaliacaoQtd: 110,
+ convenios: ['Amil', 'Unimed', 'Bradesco Saúde'],
+ endereco: 'Av. Rio de Janeiro, 300 - São José',
+ bairro: 'São José',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 250',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00', '11:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:30', '14:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:30', '12:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 10,
+ nome: 'Dra. Helena Castro',
+ especialidade: 'Pediatra geral',
+ crm: 'CRM SE 7812',
+ categoriaHero: 'Pediatra',
+ avaliacao: 4.92,
+ avaliacaoQtd: 134,
+ convenios: ['Amil', 'Unimed', 'SulAmérica'],
+ endereco: 'Rua José Hipólito, 98 - Suíssa',
+ bairro: 'Suíssa',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 260',
+ precoTeleconsulta: 'R$ 220',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00', '11:30'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:30', '10:00', '14:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:30', '11:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 11,
+ nome: 'Dr. Vinícius Prado',
+ especialidade: 'Pediatra neonatologista',
+ crm: 'CRM SE 6331',
+ categoriaHero: 'Pediatra',
+ avaliacao: 4.85,
+ avaliacaoQtd: 89,
+ convenios: ['Bradesco Saúde', 'NotreDame Intermédica'],
+ endereco: 'Av. Augusto Franco, 2220 - Siqueira Campos',
+ bairro: 'Siqueira Campos',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 280',
+ atendeLocal: true,
+ atendeTele: false,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:00', '11:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: ['09:30'] }
+ ]
+ },
+ {
+ id: 12,
+ nome: 'Dra. Marina Salles',
+ especialidade: 'Pediatra emergencista',
+ crm: 'CRM BA 85660',
+ categoriaHero: 'Pediatra',
+ avaliacao: 4.78,
+ avaliacaoQtd: 57,
+ convenios: ['Particular', 'Amil'],
+ precoTeleconsulta: 'R$ 210',
+ atendeLocal: false,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['13:00', '15:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:30', '12:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 13,
+ nome: 'Dr. Caio Moura',
+ especialidade: 'Pediatra pneumologista',
+ crm: 'CRM SE 7345',
+ categoriaHero: 'Pediatra',
+ avaliacao: 4.91,
+ avaliacaoQtd: 102,
+ convenios: ['SulAmérica', 'Unimed'],
+ endereco: 'Av. Hermes Fontes, 445 - Salgado Filho',
+ bairro: 'Salgado Filho',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 270',
+ precoTeleconsulta: 'R$ 230',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['10:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '11:00', '16:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:30', '11:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 14,
+ nome: 'Dra. Patrícia Freire',
+ especialidade: 'Cirurgiã-dentista',
+ crm: 'CRO SE 2133',
+ categoriaHero: 'Dentista',
+ avaliacao: 4.9,
+ avaliacaoQtd: 176,
+ convenios: ['OdontoPrev', 'Amil Dental'],
+ endereco: 'Rua Itabaiana, 410 - Centro',
+ bairro: 'Centro',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 200',
+ precoTeleconsulta: 'R$ 160',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00', '13:30'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:30', '10:00', '14:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:30', '11:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 15,
+ nome: 'Dr. Henrique Assis',
+ especialidade: 'Implantodontista',
+ crm: 'CRO SE 1450',
+ categoriaHero: 'Dentista',
+ avaliacao: 4.83,
+ avaliacaoQtd: 94,
+ convenios: ['SulAmérica Odonto', 'Particular'],
+ endereco: 'Av. Jorge Amado, 321 - Atalaia',
+ bairro: 'Atalaia',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 350',
+ atendeLocal: true,
+ atendeTele: false,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '11:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 16,
+ nome: 'Dra. Lívia Teles',
+ especialidade: 'Ortodontista',
+ crm: 'CRO BA 11567',
+ categoriaHero: 'Dentista',
+ avaliacao: 4.88,
+ avaliacaoQtd: 140,
+ convenios: ['Uniodonto', 'Amil Dental', 'Particular'],
+ precoTeleconsulta: 'R$ 120',
+ atendeLocal: false,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['17:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '10:30', '15:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['08:30', '09:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 17,
+ nome: 'Dr. Pablo Menezes',
+ especialidade: 'Endodontista',
+ crm: 'CRO SE 2099',
+ categoriaHero: 'Dentista',
+ avaliacao: 4.76,
+ avaliacaoQtd: 83,
+ convenios: ['OdontoPrev', 'SulAmérica Odonto'],
+ endereco: 'Rua Cedro, 70 - Grageru',
+ bairro: 'Grageru',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 230',
+ precoTeleconsulta: 'R$ 190',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:00', '13:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 18,
+ nome: 'Dra. Beatriz Moura',
+ especialidade: 'Ginecologista obstetra',
+ crm: 'CRM BA 52110',
+ categoriaHero: 'Ginecologista',
+ avaliacao: 4.95,
+ avaliacaoQtd: 186,
+ convenios: ['NotreDame Intermédica', 'Particular', 'Amil'],
+ endereco: 'Rua Tobias Barreto, 512 - São José',
+ bairro: 'São José',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 280',
+ precoTeleconsulta: 'R$ 240',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['14:00', '15:00'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '11:00', '16:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:30', '12:30'] },
+ { label: 'Dom.', data: '12 Out', horarios: ['11:30'] }
+ ]
+ },
+ {
+ id: 19,
+ nome: 'Dra. Camila Albuquerque',
+ especialidade: 'Ginecologista endocrinologista',
+ crm: 'CRM SE 6774',
+ categoriaHero: 'Ginecologista',
+ avaliacao: 4.89,
+ avaliacaoQtd: 122,
+ convenios: ['SulAmérica', 'Unimed'],
+ endereco: 'Av. Gonçalo Prado Rollemberg, 167 - São José',
+ bairro: 'São José',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 300',
+ atendeLocal: true,
+ atendeTele: false,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: [] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:00', '09:30', '15:00'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 20,
+ nome: 'Dra. Renata Figueiredo',
+ especialidade: 'Ginecologista minimamente invasiva',
+ crm: 'CRM PE 112233',
+ categoriaHero: 'Ginecologista',
+ avaliacao: 4.94,
+ avaliacaoQtd: 208,
+ convenios: ['Amil', 'Bradesco Saúde', 'Particular'],
+ precoTeleconsulta: 'R$ 260',
+ atendeLocal: false,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['09:00', '10:30'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['08:30', '11:00', '14:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['09:45'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ },
+ {
+ id: 21,
+ nome: 'Dr. Eduardo Fontes',
+ especialidade: 'Ginecologista mastologista',
+ crm: 'CRM SE 7012',
+ categoriaHero: 'Ginecologista',
+ avaliacao: 4.8,
+ avaliacaoQtd: 95,
+ convenios: ['NotreDame Intermédica', 'SulAmérica'],
+ endereco: 'Rua Teófilo Dantas, 55 - Centro',
+ bairro: 'Centro',
+ cidade: 'Aracaju • SE',
+ precoLocal: 'R$ 310',
+ atendeLocal: true,
+ atendeTele: true,
+ agenda: [
+ { label: 'Hoje', data: '9 Out', horarios: ['08:30'] },
+ { label: 'Amanhã', data: '10 Out', horarios: ['09:00', '11:00', '16:30'] },
+ { label: 'Sáb.', data: '11 Out', horarios: ['10:00', '12:00'] },
+ { label: 'Dom.', data: '12 Out', horarios: [] }
+ ]
+ }
+]
+
+const medicosMock: Medico[] = medicosBase.map((medico, index) => ({
+ ...medico,
+ experiencia:
+ medico.experiencia ??
+ [
+ 'Especialista com atuação reconhecida pelo respectivo conselho profissional.',
+ 'Formação continuada em instituições nacionais e internacionais.',
+ 'Atendimento humanizado com foco em resultados sustentáveis.'
+ ],
+ planosSaude:
+ medico.planosSaude ?? medico.convenios ?? ['Amil', 'Unimed', 'SulAmérica'],
+ consultorios:
+ medico.consultorios ??
+ (medico.endereco
+ ? [
+ {
+ nome: 'Clínica principal',
+ endereco: `${medico.endereco}${medico.cidade ? ` — ${medico.cidade}` : ''}`,
+ telefone: '(79) 4002-8922'
+ }
+ ]
+ : []),
+ servicos:
+ medico.servicos ??
+ [
+ {
+ nome: 'Consulta inicial',
+ preco: medico.precoLocal ?? medico.precoTeleconsulta ?? 'Sob consulta'
+ },
+ { nome: 'Retorno em até 30 dias', preco: 'R$ 150' }
+ ],
+ opinioes:
+ medico.opinioes ??
+ [
+ {
+ id: index * 2 + 1,
+ paciente: 'Ana P.',
+ data: '01/09/2025',
+ nota: 5,
+ comentario: 'Profissional muito atencioso e detalhista.'
+ },
+ {
+ id: index * 2 + 2,
+ paciente: 'Marcos L.',
+ data: '18/08/2025',
+ nota: 4,
+ comentario: 'Explicações claras e ambiente acolhedor.'
+ }
+ ]
+}))
+
+export default function ResultadosPage() {
+ const params = useSearchParams()
+ const router = useRouter()
+ const [tipoConsulta, setTipoConsulta] = useState
(
+ params.get('tipo') === 'presencial' ? 'local' : 'teleconsulta'
+ )
+ const [especialidadeHero, setEspecialidadeHero] = useState(params.get('especialidade') || 'Psicólogo')
+ const [convenio, setConvenio] = useState('Todos')
+ const [bairro, setBairro] = useState('Todos')
+ const [modalFiltrosAberto, setModalFiltrosAberto] = useState(false)
+ const [agendasExpandida, setAgendasExpandida] = useState>({})
+ const [medicoSelecionado, setMedicoSelecionado] = useState(null)
+ const [abaDetalhe, setAbaDetalhe] = useState('experiencia')
+
+ const profissionais = useMemo(() => {
+ return medicosMock.filter(medico => {
+ if (tipoConsulta === 'local' && !medico.atendeLocal) return false
+ if (tipoConsulta === 'teleconsulta' && !medico.atendeTele) return false
+ if (convenio !== 'Todos' && !medico.convenios.includes(convenio)) return false
+ if (bairro !== 'Todos' && medico.bairro !== bairro) return false
+ if (especialidadeHero !== 'Veja mais' && medico.categoriaHero !== especialidadeHero) return false
+ if (especialidadeHero === 'Veja mais' && medico.categoriaHero !== 'Veja mais') return false
+ return true
+ })
+ }, [bairro, convenio, especialidadeHero, tipoConsulta])
+
+ const toggleBase =
+ 'rounded-full px-4 py-[10px] text-sm font-medium transition hover:bg-primary hover:text-primary-foreground focus-visible:ring-2 focus-visible:ring-primary/60 active:scale-[0.97]'
+
+ return (
+
+
+
+
+
+
Resultados da procura
+
Qual especialização você deseja?
+
+
+
+
+ {especialidadesHero.map(item => (
+
+ ))}
+
+
+
+
+ setTipoConsulta('teleconsulta')}
+ className={cn(toggleBase, tipoConsulta === 'teleconsulta' ? 'bg-primary text-primary-foreground' : 'border border-primary/40 text-primary')}
+ >
+
+ Teleconsulta
+
+ setTipoConsulta('local')}
+ className={cn(toggleBase, tipoConsulta === 'local' ? 'bg-primary text-primary-foreground' : 'border border-primary/40 text-primary')}
+ >
+
+ Consulta no local
+
+
+
+
+
+
+
+
+
+
+
+
+ {profissionais.map(medico => (
+
+
+
+
+
+
+
+
+
+
{medico.nome}
+ {medico.especialidade}
+
+
+
+
+ {medico.avaliacao.toFixed(1)} • {medico.avaliacaoQtd} avaliações
+
+ {medico.crm}
+ {medico.convenios.join(', ')}
+
+
+
+
+
+ {tipoConsulta === 'local' && medico.atendeLocal && (
+
+
+
+ {medico.endereco}
+
+
+ {medico.cidade}
+ {medico.precoLocal}
+
+
+ )}
+
+ {tipoConsulta === 'teleconsulta' && medico.atendeTele && (
+
+
+
+ Teleconsulta
+
+ {medico.precoTeleconsulta}
+
+ )}
+
+
+
+
+ Idiomas: Português, Inglês
+
+
+
+ Acolhimento em cada consulta
+
+
+
+ Pagamento seguro
+
+
+
+ Especialista recomendado
+
+
+
+
+
+
+
+
+
+
+
+ {medico.agenda.map(coluna => {
+ const horarios = agendasExpandida[medico.id] ? coluna.horarios : coluna.horarios.slice(0, 3)
+ return (
+
+
{coluna.label}
+
{coluna.data}
+
+ {horarios.length ? (
+ horarios.map(horario => (
+
+ ))
+ ) : (
+
+ Sem horários
+
+ )}
+ {!agendasExpandida[medico.id] && coluna.horarios.length > 3 && (
+ +{coluna.horarios.length - 3} horários
+ )}
+
+
+ )
+ })}
+
+
+
+ ))}
+
+ {!profissionais.length && (
+
+ Nenhum profissional encontrado. Ajuste os filtros para ver outras opções.
+
+ )}
+
+
+
+
+
+ )
+}
diff --git a/susconecta/components/dashboard/header.tsx b/susconecta/components/dashboard/header.tsx
index 5e23a67..0872b66 100644
--- a/susconecta/components/dashboard/header.tsx
+++ b/susconecta/components/dashboard/header.tsx
@@ -7,6 +7,7 @@ import { Input } from "@/components/ui/input"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { useState, useEffect, useRef } from "react"
import { SidebarTrigger } from "../ui/sidebar"
+import { SimpleThemeToggle } from "@/components/simple-theme-toggle";
export function PagesHeader({ title = "", subtitle = "" }: { title?: string, subtitle?: string }) {
const { logout, user } = useAuth();
@@ -44,7 +45,12 @@ export function PagesHeader({ title = "", subtitle = "" }: { title?: string, sub
-
+
+
{/* Avatar Dropdown Simples */}