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}
)}
)
}
export default Register