import React, { useState, useEffect } from 'react'; import { Users, Stethoscope, Wrench, MapPin, Search, Phone, Mail, RefreshCw } from 'lucide-react'; const API_URL = (window as any).__API_URL__ || ''; const UF_LIST = ['','AC','AL','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PB','PE','PI','PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO']; interface Profissional { id: string; nome: string; email: string; role: 'dentista' | 'protetico'; estado: string; cidade: string; bairro: string; especialidade: string; } export const DiretorioProfissionaisView: React.FC = () => { const [lista, setLista] = useState([]); const [loading, setLoading] = useState(false); const [tipo, setTipo] = useState<'dentista' | 'protetico' | ''>(''); const [estado, setEstado] = useState(''); const [cidade, setCidade] = useState(''); const [especialidade, setEspecialidade] = useState(''); const fetchLista = async () => { setLoading(true); try { const token = localStorage.getItem('SCOREODONTO_AUTH_TOKEN'); const params = new URLSearchParams(); if (tipo) params.set('tipo', tipo); if (estado) params.set('estado', estado); if (cidade) params.set('cidade', cidade); if (especialidade) params.set('especialidade', especialidade); const res = await fetch(`${API_URL}/api/profissionais-disponiveis?${params}`, { headers: { Authorization: `Bearer ${token}` }, }); if (res.ok) { const data = await res.json(); setLista(data); } } catch { /* silently fail */ } finally { setLoading(false); } }; useEffect(() => { fetchLista(); }, []); return (

Diretório de Profissionais

Dentistas e protéticos disponíveis para contratação

{/* Filtros */}
setCidade(e.target.value.toUpperCase())} placeholder="CAMPO GRANDE" className="w-full px-3 py-2.5 bg-gray-50 border border-gray-200 rounded-xl text-xs font-bold text-gray-700 outline-none focus:border-purple-400 uppercase" />
setEspecialidade(e.target.value.toUpperCase())} placeholder="EX: ORTODONTIA" className="w-full px-3 py-2.5 bg-gray-50 border border-gray-200 rounded-xl text-xs font-bold text-gray-700 outline-none focus:border-purple-400 uppercase" />
{/* Lista */} {loading ? (
) : lista.length === 0 ? (

Nenhum profissional encontrado

Ajuste os filtros ou aguarde novos cadastros

) : (
{lista.map(p => (
{p.role === 'protetico' ? : }
{p.nome} {p.role === 'protetico' ? 'Protético' : 'Dentista'}
{p.especialidade && (

{p.especialidade}

)}
{(p.cidade || p.estado) && (
{[p.bairro, p.cidade, p.estado].filter(Boolean).join(' · ')}
)}
{p.email}
))}
)}
); };