"use client" import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faUser, faLock, faEye, faEyeSlash, faSignInAlt, faGraduationCap } from '@fortawesome/free-solid-svg-icons'; import { useState } from 'react'; import { login } from '@/lib/auth'; import { useTranslation } from 'react-i18next'; import LanguageSwitcher from '@/components/LanguageSwitcher'; export default function LoginPage() { const { t } = useTranslation(); const [showPassword, setShowPassword] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [errorMessage, setErrorMessage] = useState(null); const [formData, setFormData] = useState({ email: '', password: '' }); const handleInputChange = (e: React.ChangeEvent) => { const { name, value } = e.target; setFormData(prev => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setErrorMessage(null); setIsSubmitting(true); try { const session = await login({ email: formData.email, password: formData.password }); window.location.href = session.role === 'Professor' ? '/professor' : '/students'; } catch (err) { setErrorMessage(err instanceof Error ? err.message : 'Login failed.'); } finally { setIsSubmitting(false); } }; return (
{/* Login Form */}
{/* Sticky Notes */}
{t('login_student_title')}
{t('login_student_example')}
{t('login_note_slow')}
{t('login_professor_title')}
{t('login_professor_example')}
{/* Login Card Column */}
{/* Login Card */}
{/* Header */}

{t('login_welcome')}

{t('login_subtitle')}

{/* Form */}
{/* Language Switcher above email field, centered */}
{/* Email Field */}
{/* Password Field */}
{/* Remember Me & Forgot Password */}
{errorMessage && (
{t(errorMessage) || errorMessage}
)} {/* Submit Button */}
{/* Footer */}

{t('login_no_account')}{' '}

{/* Additional Info */}
{t('login_footer')}
{/* Right spacer column (keeps login centered) */}
); }