import { useState, useContext, useEffect } from 'react'; import { useNavigate, Link } from 'react-router-dom'; import axios from 'axios'; import { AuthContext } from '../context/auth'; import { TextField, Button, CircularProgress, Typography, Box, Container } from '@mui/material'; import { useGlobalInfoStore } from "../context/globalInfo"; const Register = () => { const [form, setForm] = useState({ email: '', password: '', }); const [loading, setLoading] = useState(false); const { notify } = useGlobalInfoStore(); const { email, password } = form; const { state, dispatch } = useContext(AuthContext); const { user } = state; const navigate = useNavigate(); useEffect(() => { if (user !== null) navigate('/'); }, [user, navigate]); const handleChange = (e: any) => { const { name, value } = e.target; setForm({ ...form, [name]: value }); }; const submitForm = async (e: any) => { e.preventDefault(); setLoading(true); try { const { data } = await axios.post('http://localhost:8080/auth/register', { email, password, }); dispatch({ type: 'LOGIN', payload: data, }); notify('success', 'Welcome to Maxun!'); window.localStorage.setItem('user', JSON.stringify(data)); navigate('/'); } catch (err: any) { notify('error', err.response.data || 'Registration Failed. Please try again.'); } finally { setLoading(false); } }; return ( Register OR Already have an account?{' '} Login ); }; export default Register;