import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { useAuth } from '../contexts/AuthContext'; import ThemeSwitch from '@/components/ui/ThemeSwitch'; import LanguageSwitch from '@/components/ui/LanguageSwitch'; import DefaultPasswordWarningModal from '@/components/ui/DefaultPasswordWarningModal'; const LoginPage: React.FC = () => { const { t } = useTranslation(); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(null); const [loading, setLoading] = useState(false); const [showDefaultPasswordWarning, setShowDefaultPasswordWarning] = useState(false); const { login } = useAuth(); const navigate = useNavigate(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); setLoading(true); try { if (!username || !password) { setError(t('auth.emptyFields')); setLoading(false); return; } const result = await login(username, password); if (result.success) { if (result.isUsingDefaultPassword) { // Show warning modal instead of navigating immediately setShowDefaultPasswordWarning(true); } else { navigate('/'); } } else { setError(t('auth.loginFailed')); } } catch (err) { setError(t('auth.loginError')); } finally { setLoading(false); } }; const handleCloseWarning = () => { setShowDefaultPasswordWarning(false); navigate('/'); }; return (
{/* Top-right controls */}
{/* Tech background layer */}
{/* Main content */}
{/* Centered slogan */}

{t('auth.slogan')}

{/* Centered login card */}
setUsername(e.target.value)} />
setPassword(e.target.value)} />
{error && (
{error}
)}
{/* Default Password Warning Modal */}
); }; export default LoginPage;