import React, { useState } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { Hexagon, Lock, Mail, ArrowRight, Loader2, Eye, EyeOff, AlertCircle } from 'lucide-react'; import { login } 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(''); const validateEmail = (value: string) => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!value) { setEmailError(''); } else if (!emailRegex.test(value)) { setEmailError('Por favor, insira um e-mail válido.'); } else { setEmailError(''); } }; const handleEmailChange = (e: React.ChangeEvent) => { const value = e.target.value; setEmail(value); validateEmail(value); }; const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); if (emailError) return; setIsLoading(true); setError(''); try { const data = await login({ email, password }); localStorage.setItem('ctms_token', data.token); localStorage.setItem('ctms_user_id', data.user.id); localStorage.setItem('ctms_tenant_id', data.user.tenant_id || ''); setIsLoading(false); if (data.user.role === 'super_admin') { navigate('/super-admin'); } else { navigate('/'); } } catch (err: any) { console.error("Login error:", err); setIsLoading(false); setError(err.message || 'E-mail ou senha incorretos.'); } }; return (
Fasto.

Acesse sua conta

{emailError && (

{emailError}

)}
setPassword(e.target.value)} className="block w-full pl-10 pr-10 py-2 border border-slate-300 rounded-lg leading-5 bg-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-blue-100 focus:border-blue-500 sm:text-sm transition-all" placeholder="••••••••" />
{error && (
{error}
)}
Esqueceu sua senha?
Desenvolvido por Blyzer
); };