import React, { useState } from "react"; import { Mail, Lock, User, Phone, Clipboard, ArrowLeft } from "lucide-react"; import toast from "react-hot-toast"; import { useNavigate } from "react-router-dom"; import { userService } from "../services"; const CadastroSecretaria: React.FC = () => { const [formData, setFormData] = useState({ nome: "", email: "", telefone: "", }); const [loading, setLoading] = useState(false); const navigate = useNavigate(); const handleCadastro = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); try { // Validações básicas if (!formData.nome.trim()) { toast.error("Nome completo é obrigatório"); setLoading(false); return; } if (!formData.email.trim() || !formData.email.includes("@")) { toast.error("Email válido é obrigatório"); setLoading(false); return; } // Usar create-user (flexível, validações mínimas) await userService.createUser({ email: formData.email, full_name: formData.nome, phone: formData.telefone || null, role: "secretaria", }); toast.success( "Cadastro realizado com sucesso! Verifique seu email para ativar a conta.", { duration: 5000 } ); // Limpa formulário e volta para login setFormData({ nome: "", email: "", telefone: "" }); setTimeout(() => navigate("/login-secretaria"), 2000); } catch (error: any) { console.error("Erro ao cadastrar secretária:", error); const errorMsg = error?.response?.data?.error || error?.message || "Erro ao criar conta"; toast.error(errorMsg); } finally { setLoading(false); } }; return (

Cadastro de Secretária

Crie sua conta para acessar o sistema

setFormData((prev) => ({ ...prev, nome: e.target.value })) } className="form-input pl-10 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-100" placeholder="Seu nome completo" required autoComplete="name" />
setFormData((prev) => ({ ...prev, email: e.target.value })) } className="form-input pl-10 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-100" placeholder="seu@email.com" required autoComplete="email" />
setFormData((prev) => ({ ...prev, telefone: e.target.value, })) } className="form-input pl-10 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-gray-100" placeholder="(00) 00000-0000" autoComplete="tel" />

🔐 Ativação por Email: Você receberá um link mágico (magic link) no seu email para ativar a conta e definir sua senha.

); }; export default CadastroSecretaria;