import React, { useState } from 'react'; import { login, changePassword } from '../services/auth'; import { User, Language } from '../types'; import { Dumbbell, ArrowRight, Lock, Mail, Globe } from 'lucide-react'; import { t } from '../services/i18n'; interface LoginProps { onLogin: (user: User) => void; language: Language; onLanguageChange: (lang: Language) => void; } const Login: React.FC = ({ onLogin, language, onLanguageChange }) => { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); // Force Password Change State const [needsChange, setNeedsChange] = useState(false); const [tempUser, setTempUser] = useState(null); const [newPassword, setNewPassword] = useState(''); const handleLogin = (e: React.FormEvent) => { e.preventDefault(); const res = login(email, password); if (res.success && res.user) { if (res.user.isFirstLogin) { setTempUser(res.user); setNeedsChange(true); } else { onLogin(res.user); } } else { setError(res.error || t('login_error', language)); } }; const handleChangePassword = () => { if (tempUser && newPassword.length >= 4) { changePassword(tempUser.id, newPassword); const updatedUser = { ...tempUser, isFirstLogin: false }; onLogin(updatedUser); } else { setError(t('login_password_short', language)); } }; if (needsChange) { return (

{t('change_pass_title', language)}

{t('change_pass_desc', language)}

setNewPassword(e.target.value)} />
) } return (
{/* Language Toggle */}

{t('login_title', language)}

setEmail(e.target.value)} className="w-full bg-transparent px-4 pb-3 pt-1 text-lg text-on-surface focus:outline-none" placeholder="user@gymflow.ai" />
setPassword(e.target.value)} className="w-full bg-transparent px-4 pb-3 pt-1 text-lg text-on-surface focus:outline-none" />
{error &&
{error}
}

{t('login_contact_admin', language)}

); }; export default Login;