import React, { useState } from 'react'; import { Link, useNavigate, useLocation } from 'react-router-dom'; import { Shield, Mail, Lock, Sparkles, ArrowRight, Server } from 'lucide-react'; import { useAuth } from '../context/AuthContext'; import { Button } from '../components/common/Button'; import { Input } from '../components/common/Input'; import { Toast } from '../components/common/Toast'; import { ThemeToggle } from '../components/layout/ThemeToggle'; import { DEMO_USER } from '../services/mockData'; import '../styles/auth.css'; export function Login() { const navigate = useNavigate(); const location = useLocation(); const { login } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [rememberMe, setRememberMe] = useState(true); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); // If redirected with registered email React.useEffect(() => { if (location.state?.registeredEmail) { setEmail(location.state.registeredEmail); } }, [location.state]); const handleSubmit = async (e) => { e.preventDefault(); if (!email.trim() || !password.trim()) { setError('Please provide both email and password.'); return; } try { setLoading(true); setError(null); await login(email, password); navigate('/dashboard'); } catch (err) { console.error('Login error:', err); setError(err.message || 'Failed to authenticate. Please check your credentials.'); } finally { setLoading(false); } }; const handleQuickDemo = async () => { setEmail(DEMO_USER.email); setPassword('admin123'); try { setLoading(true); setError(null); await login(DEMO_USER.email, 'admin123', true); navigate('/dashboard'); } catch (err) { setError(err.message); } finally { setLoading(false); } }; return (
Sign in to your enterprise security console