From a05b1528e321cda36881ddac31f39eb996796527 Mon Sep 17 00:00:00 2001 From: Viktor Fomin Date: Mon, 1 May 2023 14:16:01 +0300 Subject: [PATCH] Common: RecoverAccessModalDialog: add error message --- .../recover-access-modal-dialog.tsx | 67 ++++++++++++------- 1 file changed, 44 insertions(+), 23 deletions(-) diff --git a/packages/common/components/Dialogs/RecoverAccessModalDialog/recover-access-modal-dialog.tsx b/packages/common/components/Dialogs/RecoverAccessModalDialog/recover-access-modal-dialog.tsx index b885dde21c..4883a8cce8 100644 --- a/packages/common/components/Dialogs/RecoverAccessModalDialog/recover-access-modal-dialog.tsx +++ b/packages/common/components/Dialogs/RecoverAccessModalDialog/recover-access-modal-dialog.tsx @@ -1,7 +1,7 @@ import React, { useState } from "react"; import styled from "styled-components"; import Button from "@docspace/components/button"; -import TextInput from "@docspace/components/text-input"; +import EmailInput from "@docspace/components/email-input"; import Text from "@docspace/components/text"; import ModalDialog from "@docspace/components/modal-dialog"; import Textarea from "@docspace/components/textarea"; @@ -52,10 +52,13 @@ const RecoverAccessModalDialog: React.FC = ({ const [email, setEmail] = useState(""); const [emailErr, setEmailErr] = useState(false); + const [emailErrorMessage, setEmailErrorMessage] = useState(""); const [description, setDescription] = useState(""); const [descErr, setDescErr] = useState(false); + const [isShowError, setIsShowError] = useState(false); + const { t } = useTranslation(["Login", "Common"]); const onRecoverModalClose = () => { @@ -63,12 +66,23 @@ const RecoverAccessModalDialog: React.FC = ({ setEmailErr(false); setDescription(""); setDescErr(false); + setIsShowError(false); onClose && onClose(); }; const onChangeEmail = (e: React.ChangeEvent) => { setEmail(e.currentTarget.value); setEmailErr(false); + setIsShowError(false); + }; + + const onValidateEmail = (res) => { + setEmailErr(!res.isValid); + setEmailErrorMessage(res.errors[0]); + }; + + const onBlurEmail = () => { + setIsShowError(true); }; const onChangeDescription = (e: React.ChangeEvent) => { @@ -77,24 +91,25 @@ const RecoverAccessModalDialog: React.FC = ({ }; const onSendRecoverRequest = () => { - if (!email.trim()) { - setEmailErr(true); + if (!email.trim() || emailErr) { + setIsShowError(true); + return setEmailErr(true); } if (!description.trim()) { - setDescErr(true); - } else { - setLoading(true); - sendRecoverRequest(email, description) - .then((res: string) => { - setLoading(false); - toastr.success(res); - }) - .catch((error) => { - setLoading(false); - toastr.error(error); - }) - .finally(onRecoverModalClose); + return setDescErr(true); } + + setLoading(true); + sendRecoverRequest(email, description) + .then((res: string) => { + setLoading(false); + toastr.success(res); + }) + .catch((error) => { + setLoading(false); + toastr.error(error); + }) + .finally(onRecoverModalClose); }; return ( @@ -123,22 +138,28 @@ const RecoverAccessModalDialog: React.FC = ({ key="e-mail" isVertical={true} labelVisible={false} - hasError={emailErr} - errorMessage={t("Common:RequiredField")} + hasError={isShowError && emailErr} + errorMessage={ + emailErrorMessage + ? t(`Common:${emailErrorMessage}`) + : t("Common:RequiredField") + } > -