fix(#2199): fix popup recovery

keep-around/cec5ecbc4744a547838c14a99b8fc0b861611229
Andrei Dekterev 4 years ago
parent 6ccdae4f5f
commit cec5ecbc47
  1. 33
      src/features/AuthServiceApp/components/RecoveryPopup/hooks.tsx
  2. 6
      src/features/AuthServiceApp/components/RecoveryPopup/index.tsx

@ -1,4 +1,8 @@
import { ChangeEvent, useState } from 'react' import {
ChangeEvent,
useEffect,
useState,
} from 'react'
import { isValidEmail } from 'features/AuthServiceApp/helpers/isValidEmail' import { isValidEmail } from 'features/AuthServiceApp/helpers/isValidEmail'
import { loginCheckChangePass } from 'features/AuthServiceApp/requests/loginCheck' import { loginCheckChangePass } from 'features/AuthServiceApp/requests/loginCheck'
@ -11,6 +15,7 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
const [email, setEmail] = useState('') const [email, setEmail] = useState('')
const [isFetching, setIsFetching] = useState(false) const [isFetching, setIsFetching] = useState(false)
const [isSendMessage, setIsSendMessage] = useState(false) const [isSendMessage, setIsSendMessage] = useState(false)
const [isSuccess, setIsSuccess] = useState(false)
const onEmailChange = ({ const onEmailChange = ({
target: { value }, target: { value },
@ -26,6 +31,7 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
const closePopup = () => { const closePopup = () => {
setIsSendMessage(false) setIsSendMessage(false)
setIsSuccess(false)
setIsFetching(false) setIsFetching(false)
setError('') setError('')
setEmail('') setEmail('')
@ -38,17 +44,22 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
setIsFetching(false) setIsFetching(false)
} }
const handleSubmit = async () => { const handleSubmit = () => {
try { setIsFetching(true)
setIsFetching(true) loginCheckChangePass(email, lang)
await loginCheckChangePass(email, lang) .then(() => setIsFetching(false))
setIsFetching(false) .then(() => setIsSendMessage(true))
setIsSendMessage(true) .catch(handleError)
} catch (err) {
handleError(String(err))
}
} }
useEffect(() => {
if (!isFetching && isSendMessage) {
setIsSuccess(true)
} else {
setIsSuccess(false)
}
}, [isSendMessage, isFetching])
return { return {
closePopup, closePopup,
email, email,
@ -56,7 +67,7 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
handleSubmit, handleSubmit,
isFetching, isFetching,
isSendBtnDisabled, isSendBtnDisabled,
isSendMessage, isSuccess,
onEmailChange, onEmailChange,
} }
} }

@ -33,7 +33,7 @@ export const RecoveryPopup = (props: Props) => {
handleSubmit, handleSubmit,
isFetching, isFetching,
isSendBtnDisabled, isSendBtnDisabled,
isSendMessage, isSuccess,
onEmailChange, onEmailChange,
} = useRecovery(setIsModalOpen) } = useRecovery(setIsModalOpen)
@ -50,7 +50,7 @@ export const RecoveryPopup = (props: Props) => {
</HeaderTitle> </HeaderTitle>
</Header> </Header>
<Body> <Body>
{isSendMessage ? ( {isSuccess ? (
<Text> <Text>
<T9n t='send_new_email_for_change_pass' /> <T9n t='send_new_email_for_change_pass' />
</Text> </Text>
@ -72,7 +72,7 @@ export const RecoveryPopup = (props: Props) => {
</Fragment> </Fragment>
)} )}
<Footer> <Footer>
{!isSendMessage ? ( {!isSuccess ? (
<ApplyButton onClick={handleSubmit} disabled={isSendBtnDisabled}> <ApplyButton onClick={handleSubmit} disabled={isSendBtnDisabled}>
{isFetching ? <ArrowLoader /> : <T9n t='send' />} {isFetching ? <ArrowLoader /> : <T9n t='send' />}
</ApplyButton> </ApplyButton>

Loading…
Cancel
Save