import React, { useState } from 'react'; import { Link } from 'react-router-dom'; import { UserPlus, Mail, Lock, User as UserIcon, AlertCircle } from 'lucide-react'; import { authAPI } from '../utils/api'; import { User } from '../types'; interface RegisterProps { onRegister: (user: User, token: string) => void; } const Register: React.FC = ({ onRegister }) => { const [formData, setFormData] = useState({ username: '', email: '', password: '', confirmPassword: '', }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); setError(''); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); if (formData.password !== formData.confirmPassword) { setError('两次输入的密码不一致'); setLoading(false); return; } if (formData.password.length < 6) { setError('密码长度至少为6位'); setLoading(false); return; } try { const { confirmPassword, ...registerData } = formData; const response = await authAPI.register(registerData); onRegister(response.user, response.token); } catch (error: any) { setError(error.response?.data?.message || '注册失败,请重试'); } finally { setLoading(false); } }; return (

创建新账号

已有账号?{' '} 立即登录

{error && (
{error}
)}
); }; export default Register;