import React, { useEffect, useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { Link, useNavigate } from 'react-router-dom'; import { checkAuthThunk, signupThunk } from '../../store/auth/auth.thunk'; export default function Signup() { const dispatch = useDispatch(); const navigate = useNavigate(); const [username, setUsername] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [errors, setErrors] = useState({}); const [submitted, setSubmitted] = useState(false); const { user } = useSelector((state) => state.auth); useEffect(() => { handleCheckAuth(); }, [dispatch]); const handleCheckAuth = async () => { console.log('signup page handleCheckAuth'); await dispatch(checkAuthThunk()).unwrap(); if (user) navigate('/'); }; const validateForm = () => { const newErrors = {}; if (!username) { newErrors.username = 'Username is required'; } if (!email) { newErrors.email = 'Email is required'; } else if (!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)) { newErrors.email = 'Invalid email address'; } if (!password) { newErrors.password = 'Password is required'; } else if (password.length < 6) { newErrors.password = 'Password must be at least 6 characters'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSubmit = (e) => { e.preventDefault(); setSubmitted(true); console.log(validateForm()); if (validateForm()) { console.log('Form submitted successfully!'); console.log('Username:', username); console.log('Email:', email); console.log('Password:', password); dispatch(signupThunk({ username, password, email })); } }; return (