diff --git a/package.json b/package.json index ef63a44c..4b436813 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "opex", - "version": "v1.0.11-beta.20", + "version": "v1.0.12-beta.21", "homepage": "", "private": true, "dependencies": { diff --git a/src/main/Browser/Pages/Login/components/LoginForm/LoginForm.js b/src/main/Browser/Pages/Login/components/LoginForm/LoginForm.js index d06a9ac9..5d575f84 100644 --- a/src/main/Browser/Pages/Login/components/LoginForm/LoginForm.js +++ b/src/main/Browser/Pages/Login/components/LoginForm/LoginForm.js @@ -15,6 +15,7 @@ import {getUserConfigsInitiate, setUserInfo, setUserTokensInitiate} from "../../ import {useGetKycStatus} from "../../../../../../queries"; import {login, parseToken} from "js-api-client"; import Icon from "../../../../../../components/Icon/Icon"; +import EmailVerification from "../EmailVerification/EmailVerification"; const LoginForm = () => { const {t} = useTranslation(); @@ -22,6 +23,8 @@ const LoginForm = () => { const dispatch = useDispatch(); const location = useLocation(); + 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); @@ -31,6 +34,10 @@ 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] @@ -38,6 +45,10 @@ const LoginForm = () => { const clientId = window.env.REACT_APP_CLIENT_ID + useEffect(() => { + if (verifyEmailLock && new Date().getTime() < verifyEmailLock) setDisable(true) + }, [verifyEmailLock]); + useEffect(() => { setNeedOTP(undefined) }, [credential.username]) @@ -86,6 +97,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")); @@ -97,6 +109,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}) } @@ -142,11 +157,21 @@ const LoginForm = () => {
{loginError} + {needOTP ? {t('login.back')} : -
setForgetPassword(true)}>{t('login.forgetPassword')}
+
+ + { + showVerifyEmail ? + setVerifyEmail(true)}>{t('login.verificationEmail')} + : + setForgetPassword(true)}>{t('login.forgetPassword')} + } + +
}
diff --git a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/Order/components/SellOrder/SellOrder.js b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/Order/components/SellOrder/SellOrder.js index 898ae4a5..f33192c6 100644 --- a/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/Order/components/SellOrder/SellOrder.js +++ b/src/main/Browser/Pages/UserPanel/Sections/Content/components/Market/components/Order/components/SellOrder/SellOrder.js @@ -335,6 +335,7 @@ const SellOrder = () => { maxDecimal={activePair.quoteAssetPrecision} after={t("currency." + activePair.quoteAsset)} onchange={(e) => sellPriceHandler(e.target.value, "totalPrice")} + alert={alert.totalPrice} isAllowed={isAllowed} /> diff --git a/src/store/sagas/global.js b/src/store/sagas/global.js index 50bf2d48..e370348f 100644 --- a/src/store/sagas/global.js +++ b/src/store/sagas/global.js @@ -185,13 +185,16 @@ export function* loadConfig(action) { } const assetsScope = { - TBTC: {min: 0.000001, step: 0.000001}, - BTC: {min: 0.000001, step: 0.000001}, - TETH: {min: 0.00001, step: 0.00001}, - ETH: {min: 0.00001, step: 0.00001}, - TBNB: {min: 0.001, step: 0.001}, - BNB: {min: 0.001, step: 0.001}, + TBTC: {min: 0.0000001, step: 0.0000001}, + BTC: {min: 0.0000001, step: 0.0000001}, + TETH: {min: 0.0000001, step: 0.0000001}, + ETH: {min: 0.0000001, step: 0.0000001}, + TBNB: {min: 0.00001, step: 0.00001}, + BNB: {min: 0.00001, step: 0.00001}, USDT: {min: 0.01, step: 0.01}, IRT: {min: 50000, step: 1000}, - TRX: {min: 0.1, step: 0.1}, + TRX: {min: 0.0000001, step: 0.0000001}, + SOL: {min: 0.000001, step: 0.000001}, + TON: {min: 0.00001, step: 0.00001}, + DOGE: {min: 0.00001, step: 0.00001}, } \ No newline at end of file