import React, { useState } from 'react' import { Link, Navigate } from 'react-router-dom' import { useAuth } from '../contexts/AuthContext' import { Container, Paper, TextField, Button, Typography, Box, Alert, InputAdornment, IconButton } from '@mui/material' import { Visibility, VisibilityOff, PersonAdd as RegisterIcon } from '@mui/icons-material' const Register = () => { const { register, user } = useAuth() const [formData, setFormData] = useState({ username: '', email: '', password: '', confirmPassword: '' }) const [showPassword, setShowPassword] = useState(false) const [showConfirmPassword, setShowConfirmPassword] = useState(false) const [error, setError] = useState('') const [loading, setLoading] = useState(false) if (user) { return } const handleChange = (e) => { setFormData({ ...formData, [e.target.name]: e.target.value }) } const validateForm = () => { if (formData.password !== formData.confirmPassword) { setError('两次输入的密码不一致') return false } if (formData.password.length < 6) { setError('密码长度至少6位') return false } return true } const handleSubmit = async (e) => { e.preventDefault() setError('') if (!validateForm()) { return } setLoading(true) const { confirmPassword, ...userData } = formData const result = await register(userData) if (!result.success) { setError(result.message) } setLoading(false) } return ( 注册 创建您的账户 {error && ( {error} )}
setShowPassword(!showPassword)} edge="end" > {showPassword ? : } ) }} /> setShowConfirmPassword(!showConfirmPassword)} edge="end" > {showConfirmPassword ? : } ) }} /> 已有账户?{' '} 立即登录
) } export default Register