fix(#2331): fix close popup before to get response from backend

keep-around/5579b78267dac2777683a709b977c357b174a7c8
Andrei Dekterev 4 years ago
parent 72124ba0d5
commit 5579b78267
  1. 20
      src/features/AuthServiceApp/components/RecoveryPopup/hooks.tsx
  2. 6
      src/features/AuthServiceApp/components/RecoveryPopup/index.tsx

@ -1,6 +1,6 @@
import { import {
MouseEvent,
ChangeEvent, ChangeEvent,
useEffect,
useState, useState,
} from 'react' } from 'react'
@ -16,7 +16,6 @@ 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 },
@ -32,7 +31,6 @@ 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('')
@ -45,8 +43,12 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
setIsFetching(false) setIsFetching(false)
} }
const handleSubmit = () => { const handleSubmit = (event: MouseEvent) => {
event?.preventDefault()
event?.stopPropagation()
setIsFetching(true) setIsFetching(true)
setIsSendBtnDisabled(true)
loginCheckChangePass( loginCheckChangePass(
client_id, client_id,
email, email,
@ -59,14 +61,6 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
.catch(handleError) .catch(handleError)
} }
useEffect(() => {
if (!isFetching && isSendMessage) {
setIsSuccess(true)
} else {
setIsSuccess(false)
}
}, [isFetching, isSendMessage])
return { return {
closePopup, closePopup,
email, email,
@ -74,7 +68,7 @@ export const useRecovery = (setIsModalOpen: (value: boolean) => void) => {
handleSubmit, handleSubmit,
isFetching, isFetching,
isSendBtnDisabled, isSendBtnDisabled,
isSuccess, isSendMessage,
onEmailChange, onEmailChange,
} }
} }

@ -33,7 +33,7 @@ export const RecoveryPopup = (props: Props) => {
handleSubmit, handleSubmit,
isFetching, isFetching,
isSendBtnDisabled, isSendBtnDisabled,
isSuccess, isSendMessage,
onEmailChange, onEmailChange,
} = useRecovery(setIsModalOpen) } = useRecovery(setIsModalOpen)
@ -50,7 +50,7 @@ export const RecoveryPopup = (props: Props) => {
</HeaderTitle> </HeaderTitle>
</Header> </Header>
<Body> <Body>
{isSuccess ? ( {isSendMessage ? (
<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>
{!isSuccess ? ( {!isSendMessage ? (
<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