import React, { useState } from 'react' import { useAuth } from '../contexts/AuthContext' import { useLanguage } from '../contexts/LanguageContext' import { t } from '../i18n/translations' import HeaderBar from './landing/HeaderBar' export function LoginPage() { const { language } = useLanguage() const { login, verifyOTP } = useAuth() const [step, setStep] = useState<'login' | 'otp'>('login') const [email, setEmail] = useState('') const [password, setPassword] = useState('') const [otpCode, setOtpCode] = useState('') const [userID, setUserID] = useState('') const [error, setError] = useState('') const [loading, setLoading] = useState(false) const handleLogin = async (e: React.FormEvent) => { e.preventDefault() setError('') setLoading(true) const result = await login(email, password) if (result.success) { if (result.requiresOTP && result.userID) { setUserID(result.userID) setStep('otp') } } else { setError(result.message || t('loginFailed', language)) } setLoading(false) } const handleOTPVerify = async (e: React.FormEvent) => { e.preventDefault() setError('') setLoading(true) const result = await verifyOTP(userID, otpCode) if (!result.success) { setError(result.message || t('verificationFailed', language)) } // 成功的话AuthContext会自动处理登录状态 setLoading(false) } return (
{step === 'login' ? '请输入您的邮箱和密码' : '请输入两步验证码'}
还没有账户?{' '}