// import { GoogleSvg, SalesforceSvg } from "../svgs/Svg" import OAuthGoogle from "./OAuthGoogle" import { useEffect, useState } from "react"; import { Link, Navigate, useNavigate } from "react-router-dom"; import axios from "axios"; // import Cookies from "js-cookie"; import { Bounce, toast } from "react-toastify"; import { updateUser, UserState } from "../../store/slices/userSlice"; import { useDispatch, useSelector } from "react-redux"; import { AppDispatch, RootState } from "../../store/store"; // import api from "../../config/api"; interface FormDataState { email: string; password: string; confirmPassword: string; firstName: string; lastName: string; } function RegisterForm() { const [formData, setForm] = useState({ email: "", password: "", confirmPassword: "", firstName: "", lastName: "" }); const dispatch = useDispatch(); const navigate = useNavigate(); const handleFormRegisterClick = () => { formData.firstName = formData.firstName.trim(); formData.lastName = formData.lastName.trim(); // Validation Starts if (formData.email === "" || formData.password === "" || formData.confirmPassword === "" || formData.firstName === "" || formData.lastName === "") { console.log('All Fields are Required'); return; } // Validate Email Format const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if (!emailRegex.test(formData.email)) { console.log("Invalid email format"); return; } // Validation Ends // Register API Call console.dir(formData); axios.post(`${import.meta.env.VITE_BASE_URI}/api/auth/signup`, { firstName: formData.firstName, lastName: formData.lastName, email: formData.email, password: formData.password }, { withCredentials: true, headers: { "ngrok-skip-browser-warning": "69420", "Access-Control-Allow-Origin": "*" } }) .then((res) => { if (res.status === 201) { toast.dismiss(); // dispatch(updateUser({ ...res.data, authorized: true, accessToken: res.headers.authorization })); // dispatch(updateUser({ ...res.data, authorized: true })); navigate('/') } }) .catch((err) => { if (err.status === 409) { toast.dismiss(); toast.error("User Already Exists", { position: "top-center", autoClose: 5000, hideProgressBar: false, closeOnClick: false, pauseOnHover: true, draggable: true, progress: undefined, theme: "light", transition: Bounce, }); } else { toast.dismiss(); toast.error("Some Error Occurred", { position: "top-center", autoClose: 5000, hideProgressBar: false, closeOnClick: false, pauseOnHover: true, draggable: true, progress: undefined, theme: "light", transition: Bounce, }); } }); } return (
{ e.preventDefault(); handleFormRegisterClick(); }}>

Registration

{/*
*/}
setForm({ ...formData, firstName: e.target.value })} type="text" placeholder="First Name" pattern="^(?!\s*$).+" required title="Input cannot be empty or just spaces" />
setForm({ ...formData, lastName: e.target.value })} type="text" placeholder="Last Name" pattern="^(?!\s*$).+" required title="Input cannot be empty or just spaces" />
setForm({ ...formData, email: e.target.value })} type="email" placeholder="Email" required />
setForm({ ...formData, password: e.target.value })} type="password" placeholder="Password" pattern="^.{8,}$" title="Password must be at least 8 digits" required />
setForm({ ...formData, confirmPassword: e.target.value })} type="password" placeholder="Confirm Password" style={{ border: (formData.confirmPassword != "" && formData.password !== formData.confirmPassword) ? "1px solid red" : "none" }} required />

or register with social platforms

Already! have an Account. Login

) } export default RegisterForm