diff --git a/src/main/Mobile/Pages/Login/components/LoginForm/LoginForm.js b/src/main/Mobile/Pages/Login/components/LoginForm/LoginForm.js index cff42fd..c5e232a 100644 --- a/src/main/Mobile/Pages/Login/components/LoginForm/LoginForm.js +++ b/src/main/Mobile/Pages/Login/components/LoginForm/LoginForm.js @@ -1,5 +1,5 @@ -import {useDispatch} from "react-redux"; import React, {useEffect, useState} from "react"; +import {useDispatch, useSelector} from "react-redux"; import classes from "../../Login.module.css"; import TextInput from "../../../../../../components/TextInput/TextInput"; import LoginFormLoading from "../LoginLoading/LoginFormLoading"; @@ -15,6 +15,7 @@ import ForgetPassword from "../ForgetPassword/ForgetPassword"; import {useGetKycStatus} from "../../../../../../queries"; import Icon from "../../../../../../components/Icon/Icon"; import {login, parseToken} from "js-api-client"; +import EmailVerification from "../EmailVerification/EmailVerification"; const LoginForm = () => { @@ -24,6 +25,8 @@ const LoginForm = () => { const location = useLocation(); const dispatch = useDispatch(); + const verifyEmailLock = useSelector((state) => state.exchange.verifyEmailLock) + const isDevelopment = window.env.REACT_APP_ENV === "development"; const [isInputVisible, setIsInputVisible] = useState(false); const [isLoading, setLoading] = useState(false); @@ -33,12 +36,20 @@ const LoginForm = () => { const [credential, setCredential] = useState({username: "", password: "", otp: ""}); const {refetch: getKycStatus} = useGetKycStatus(); + const [verifyEmail, setVerifyEmail] = useState(false); + const [showVerifyEmail, setShowVerifyEmail] = useState(false); + const [disable, setDisable] = useState(false); + const from = location.state?.from?.pathname || "/"; const agent = [deviceType, browserName, fullBrowserVersion] const clientSecret = window.env.REACT_APP_CLIENT_SECRET const clientId = window.env.REACT_APP_CLIENT_ID + useEffect(() => { + if (verifyEmailLock && new Date().getTime() < verifyEmailLock) setDisable(true) + }, [verifyEmailLock]); + useEffect(() => { setNeedOTP(undefined) }, [credential.username]) @@ -88,6 +99,7 @@ const LoginForm = () => { return setNeedOTP(true) } if (err?.response?.status === 400 && err?.response?.data?.error_description === "Account is not fully set up") { + setShowVerifyEmail(true) return setLoginError(t("login.accountNotActive")); } setLoginError(t("login.loginError")); @@ -100,6 +112,9 @@ const LoginForm = () => { if (isLoading) return + if (verifyEmail) return setVerifyEmail(false)} email={credential.username} disable={disable} returnFuncDisableFalse={() => setDisable(false)} returnFuncDisableTrue={() => setDisable(true)}/> + + const setOTPInputHandler = (val) => { setCredential({...credential, otp: val}) } @@ -146,8 +161,20 @@ const LoginForm = () => { {t('login.back')} : - setForgetPassword(true)}>{t('login.forgetPassword')} + + <> + { + showVerifyEmail ? + setVerifyEmail(true)}>{t('login.verificationEmail')} + : + setForgetPassword(true)}>{t('login.forgetPassword')} + + } + + /*setForgetPassword(true)}>{t('login.forgetPassword')}*/ }