import React, { useEffect, useState } from "react"; import { useNavigate, Link } from "react-router-dom"; import facebookLogo from "../../../assets/images/facebook-4.svg"; import WrenchBoard from "../../../assets/images/wrenchboard.png"; import usersService from "../../../services/UsersService"; import InputCom from "../../Helpers/Inputs/InputCom"; export default function SignUp() { const [signUpLoading, setSignUpLoading] = useState(false) const [checked, setValue] = useState(false); // for the catch error const [msgError, setMsgError] = useState(''); const [showPassword, setShowPassword] = useState(false); const [countries, setCountries] = useState([]); const [formData, setFormData] = useState({ country: "", first_name: "", last_name: "", email: "", password: "" }); const handleInputChange = (event) => { const { name, value } = event?.target; setFormData({ ...formData, [name]: value }); }; // To Show and Hide Password const togglePasswordVisibility = () => { setShowPassword(!showPassword); }; const rememberMe = () => { setValue(!checked); }; const navigate = useNavigate(); const userApi = new usersService(); // Get Country Api const getCountryList = async () => { const res = await userApi.getSignupCountryData() try { if (res.status === 200) { const { signup_country } = await res.data setCountries(signup_country) } else if (res.data.result != 100) { setCountries('Nothing see here!') } } catch (error) { throw new Error(error) } } const handleSignUp = async () => { let { country, first_name, last_name, email, password } = formData if (email == '' && password == '' && first_name == '') { setMsgError('Please fill in fields') } try { if (email !== '' && password !== '' && first_name !== '' && last_name !== '') { const reqData = { country: country, firstname: first_name, lastname: last_name, email: email, username: email, password: password, terms: 1, news: 1 } const res = await userApi.CreateUser(reqData) setSignUpLoading(true) if (res.status === 200) { const { data } = res if (data.status == -1 && data.acc == 'DULPICATE') { setMsgError('This account has been already created') setSignUpLoading(false) } if (data.status > 0 && data.internal_return == 100 && data.session != '') { localStorage.setItem("email", `${data.email}`); localStorage.setItem("country", `${data.country}`); localStorage.setItem("firstname", `${data.firstname}`); localStorage.setItem("lastname", `${data.lastname}`); setTimeout(() => { navigate("/", { replace: true }); setSignUpLoading(false) }, 2000) } else { setMsgError(data.status) setSignUpLoading(false) } } } else { setMsgError('This account does not exist') setSignUpLoading(false) } } catch (error) { throw new Error(error) setMsgError('An error occurred') } finally { setTimeout(() => { setMsgError(null) }, process.env.REACT_APP_SIGNUP_ERROR_TIMEOUT) } } useEffect(() => { getCountryList() }, []) return ( <>