import React, { useState, useEffect } from 'react'; import { Database, Lock, User, Stethoscope, Phone, ShieldCheck, Mail, ArrowRight, Loader2 } from 'lucide-react'; import { useToast } from '../contexts/ToastContext'; export const DentistRegisterView: React.FC = () => { const [step, setStep] = useState(1); const [loading, setLoading] = useState(false); const toast = useToast(); // Get data from URL const query = new URLSearchParams(window.location.hash.split('?')[1]); const clinicaId = query.get('clinica'); const tempName = query.get('nome'); const token = query.get('token'); const [formData, setFormData] = useState({ nome: tempName || '', email: '', senha: '', cro: '', cro_uf: 'MS', celular: '', especialidade: '' }); if (!token || !clinicaId) { return (

LINK INVÁLIDO OU EXPIRADO

Por favor, solicite um novo convite ao administrador da clínica.

); } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { const res = await fetch('http://localhost:3005/api/dentistas/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ ...formData, id: 'd_' + Math.random().toString(36).substring(2, 9), clinicaId }) }); if (res.ok) { toast.success("CADASTRO REALIZADO COM SUCESSO!"); setStep(3); } else { toast.error("ERRO AO REALIZAR CADASTRO."); } } catch (err) { toast.error("FALHA DE CONEXÃO."); } finally { setLoading(false); } }; return (
{/* Progress Header */}
Convite de Profissional

Complete seu Perfil

Bem-vindo ao SCOREODONTO. Você está sendo convidado para a unidade: {clinicaId}

{step === 1 && (
{ e.preventDefault(); setStep(2); }}>
setFormData({ ...formData, nome: e.target.value.toUpperCase() })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800 uppercase" placeholder="NOME COMPLETO" />
setFormData({ ...formData, email: e.target.value })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800" placeholder="seu@email.com" />
setFormData({ ...formData, senha: e.target.value })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800" placeholder="••••••••" />
)} {step === 2 && (
setFormData({ ...formData, cro: e.target.value })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800 uppercase" placeholder="00000" />
setFormData({ ...formData, especialidade: e.target.value.toUpperCase() })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800 uppercase" placeholder="EX: ORTODONTIA" />
setFormData({ ...formData, celular: e.target.value })} className="w-full bg-gray-50 border border-transparent focus:border-blue-500 focus:bg-white px-12 py-4 rounded-2xl outline-none transition-all font-bold text-gray-800 uppercase" placeholder="(00) 00000-0000" />
)} {step === 3 && (

Tudo Pronto!

Seu perfil foi criado e você já está vinculado à unidade
{clinicaId}.

)}
Ambiente Seguro e Auditorado por Administradores
); };