import React, { useState } from 'react'; import { useNavigate, Link as RouterLink } from 'react-router-dom'; import { Container, Box, Paper, TextField, Button, Typography, Alert, Link, } from '@mui/material'; import { useAuth } from '../contexts/AuthContext'; const Register: React.FC = () => { const navigate = useNavigate(); const { register } = useAuth(); const [formData, setFormData] = useState({ email: '', username: '', password: '', confirmPassword: '', full_name: '', }); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); setError(''); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); // Validate passwords match if (formData.password !== formData.confirmPassword) { setError('Passwords do not match'); return; } // Validate password length if (formData.password.length < 6) { setError('Password must be at least 6 characters'); return; } setLoading(true); try { await register({ email: formData.email, username: formData.username, password: formData.password, full_name: formData.full_name || undefined, }); navigate('/'); } catch (err: any) { setError(err.response?.data?.detail || 'Registration failed. Please try again.'); } finally { setLoading(false); } }; return ( Site11 Console Create Account {error && ( {error} )} Already have an account?{' '} Sign In ); }; export default Register;