import { useState } from 'react'; import { useAuthStore } from '@/stores/auth'; import { useTranslation } from '@/hooks/useTranslation'; import styles from './auth-form.module.css'; export function AuthForm() { const { t } = useTranslation(); const [isLogin, setIsLogin] = useState(true); const [formData, setFormData] = useState({ username: '', password: '', }); const [showSuccess, setShowSuccess] = useState(false); const [successMessage, setSuccessMessage] = useState(''); const { login, register, isLoading, error, clearError } = useAuthStore(); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); clearError(); try { if (isLogin) { await login(formData); setSuccessMessage('登录成功!'); } else { await register(formData); setSuccessMessage('注册成功!'); } setShowSuccess(true); setTimeout(() => { setShowSuccess(false); }, 3000); } catch (error) { // 错误已经在 store 中处理了 } }; const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); }; const toggleMode = () => { setIsLogin(!isLogin); clearError(); setFormData({ username: '', password: '' }); }; return (

{isLogin ? '登录' : '注册'}

{showSuccess && (
{successMessage}
)} {error && (
{error}
)}
{isLogin ? '还没有账号?' : '已有账号?'}
); }