import { useState, FormEvent, ChangeEvent } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import { useApi } from '../hooks/useApi'; interface FormData { email: string; username: string; password: string; confirmPassword: string; first_name: string; last_name: string; } export function Register() { const [formData, setFormData] = useState({ email: '', username: '', password: '', confirmPassword: '', first_name: '', last_name: '', }); const [error, setError] = useState(''); const [loading, setLoading] = useState(false); const navigate = useNavigate(); const { register } = useApi(); const handleChange = (e: ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value, }); }; const handleSubmit = async (e: FormEvent) => { e.preventDefault(); setError(''); if (formData.password !== formData.confirmPassword) { setError('Passwords do not match'); return; } 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, first_name: formData.first_name, last_name: formData.last_name, }); navigate('/login'); } catch (err: any) { setError(err.response?.data?.error || 'Registration failed. Please try again.'); } finally { setLoading(false); } }; return (

Register

{error && (
{error}
)}

Already have an account?{' '} Login

); }