import React, { useState } from "react"; import { Link, useNavigate } from "react-router-dom"; import appleLogo from "../../../assets/images/apple-black.svg"; import facebookLogo from "../../../assets/images/facebook-4.svg"; import googleLogo from "../../../assets/images/google-logo.svg"; import WrenchBoard from "../../../assets/images/wrenchboard.png"; import usersService from "../../../services/UsersService"; import InputCom from "../../Helpers/Inputs/InputCom"; import AuthLayout from "../AuthLayout"; //import { GoogleOAuthProvider } from '@react-oauth/google'; // import { googleLogout, useGoogleLogin } from '@react-oauth/google'; import { useDispatch } from "react-redux"; import { updateUserDetails } from "../../../store/UserDetails"; export default function Login() { const dispatch = useDispatch(); let [loginCom, setLoginCom] = useState({user: true, family: false}) const [checked, setValue] = useState(false); const [loginLoading, setLoginLoading] = useState(false); //login error state const [loginError, setLoginError] = useState(false); // for the catch error const [msgError, setMsgError] = useState(""); const rememberMe = () => { setValue(!checked); }; //FUNCTION TO DETERMINE/CHANGE LOGIN COMPONENT const handleLoginCom = ({target:{name}}) => { if(name == 'user'){ setLoginCom({[name]: true, family: false}) }else{ setLoginCom({[name]: false, family: true}) } } // email const [email, setMail] = useState(""); const handleEmail = (e) => { setMail(e.target.value); }; // password const [password, setPassword] = useState(""); const handlePassword = (e) => { setPassword(e.target.value); }; const navigate = useNavigate(); const userApi = new usersService(); // FUNCTION TO HANDLE USER LOGIN const doLogin = ({target:{name}}) => { setLoginLoading(true); let postData = {}; // Post Data for API if(!email || !password){ setLoginLoading(false); setMsgError("Please fill in the fields"); return } if(name == 'userlogin'){ // Post Data Info for normal Login postData = { username: email, password: password, sessionid: "STARTING", }; }else{ postData = { // Post Data Info for family Login username: email, pin: password, sessionid: "20067A92714", login_mode: 1105, action: 11025 }; } userApi.logInUser(postData).then((res)=>{ if(res.status != 200 || res.data.internal_return < 0){ // setMsgError("Wrong, email/password"); setLoginError(true); setLoginLoading(false); return } localStorage.setItem("member_id", `${res.data.member_id}`); localStorage.setItem("uid", `${res.data.uid}`); localStorage.setItem("session_token", `${res.data.session}`); // localStorage.setItem("session", `${res.data.session}`); dispatch(updateUserDetails(res.data)); setTimeout(() => { navigate("/", { replace: true }); setLoginLoading(false); }, 2000); }).catch(error => { setMsgError("Unable to login, try again"); setLoginLoading(false); }).finally(()=>{ setTimeout(() => { setLoginError(false); setMsgError(null); setLoginLoading(false); }, Number(process.env.REACT_APP_LOGIN_ERROR_TIMEOUT)); }) }; return ( <>
wrenchboard
{/*

Sign In to WrenchBoard

*/} New Here?{" "} Create an Account
{/* switch login component */}
{/* END of switch login component */} {/* for login component */} {loginCom.user ? //user login compoenent
{loginError && (
Invalid username or password- Please{" "} reset your password {" "} or{" "} create a new account
)} {msgError && (
{msgError}
)}
// END of user login compoenent : // family login compoenent
{loginError && (
Invalid username or password{" "} {/* reset your password {" "} or{" "} create a new account */}
)} {msgError && (
{msgError}
)}
// END of family login compoenent } {/* END of login component */}
This site is protected by hCaptcha and the our Privacy Policy and Terms of Service apply.
); } const BrandBtn = ({ link, imgSrc, brand }) => { const doGoogle = async ()=>{ alert('start google'); } // onSuccess: (codeResponse) => setUser(codeResponse), // const doGoogle = useGoogleLogin({ // onSuccess: (codeResponse) => console.log('Login onSuccess:', codeResponse), // onError: (error) => console.log('Login Failed:', error) // }); const doApple = async ()=>{ alert('start apple'); } const doFacebook = async ()=>{ alert('start facebook'); } return (
logo-icon(s) Continue with {brand}
); };