import React, { useState, useEffect } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { Hexagon, Lock, Mail, ArrowRight, Loader2, Eye, EyeOff, AlertCircle } from 'lucide-react'; import { login, logout } from '../services/dataService'; export const Login: React.FC = () => { const navigate = useNavigate(); const [isLoading, setIsLoading] = useState(false); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [showPassword, setShowPassword] = useState(false); const [error, setError] = useState(''); const [emailError, setEmailError] = useState(''); // Auto-redirect if already logged in useEffect(() => { const token = localStorage.getItem('ctms_token'); const userId = localStorage.getItem('ctms_user_id'); if (token && userId && token !== 'undefined' && token !== 'null') { // Opt to send them to root, AuthGuard will handle role-based routing navigate('/'); } }, [navigate]); const validateEmail = (val: string) => { setEmail(val); if (!val) { setEmailError('E-mail é obrigatório'); } else if (!/\S+@\S+\.\S+/.test(val)) { setEmailError('E-mail inválido'); } else { setEmailError(''); } }; const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); if (emailError) return; setIsLoading(true); setError(''); logout(); try { const data = await login({ email, password }); setIsLoading(false); if (data.user.role === 'super_admin') { navigate('/super-admin'); } else { navigate('/'); } } catch (err: any) { setIsLoading(false); setError(err.message || 'Erro ao fazer login. Verifique suas credenciais.'); } }; return (