feat: stop polling if restoring and we push the back button

pull/3137/head
yougotwill
parent fd7d6e322b
commit 4478ee160d

@ -28,12 +28,14 @@ export const BackButtonWithinContainer = ({
children,
margin,
callback,
onQuitVisible,
shouldQuitOnClick,
quitMessage,
}: {
children: ReactNode;
margin?: string;
callback?: () => void;
onQuitVisible?: () => void;
shouldQuitOnClick?: boolean;
quitMessage?: string;
}) => {
@ -48,6 +50,7 @@ export const BackButtonWithinContainer = ({
<div style={{ margin }}>
<BackButton
callback={callback}
onQuitVisible={onQuitVisible}
shouldQuitOnClick={shouldQuitOnClick}
quitMessage={quitMessage}
/>
@ -59,10 +62,12 @@ export const BackButtonWithinContainer = ({
export const BackButton = ({
callback,
onQuitVisible,
shouldQuitOnClick,
quitMessage,
}: {
callback?: () => void;
onQuitVisible?: () => void;
shouldQuitOnClick?: boolean;
quitMessage?: string;
}) => {
@ -81,6 +86,9 @@ export const BackButton = ({
padding={'0'}
onClick={() => {
if (shouldQuitOnClick && quitMessage) {
if (onQuitVisible) {
onQuitVisible();
}
dispatch(
updateQuitModal({
title: window.i18n('warning'),

@ -117,6 +117,8 @@ async function signInWithNewDisplayName({
}
}
let abortController = new AbortController();
export const RestoreAccount = () => {
const step = useOnboardAccountRestorationStep();
const recoveryPassword = useRecoveryPassword();
@ -136,8 +138,8 @@ export const RestoreAccount = () => {
const trimmedPassword = recoveryPassword.trim();
setRecoveryPassword(trimmedPassword);
const abortController = new AbortController();
try {
abortController = new AbortController();
dispatch(setProgress(0));
dispatch(setAccountRestorationStep(AccountRestoration.Loading));
await signInAndFetchDisplayName({
@ -201,6 +203,23 @@ export const RestoreAccount = () => {
margin={'2px 0 0 -36px'}
shouldQuitOnClick={step !== AccountRestoration.RecoveryPassword}
quitMessage={window.i18n('onboardingBackLoadAccount')}
onQuitVisible={() => {
if (!abortController.signal.aborted) {
abortController.abort();
}
dispatch(setRecoveryPassword(''));
dispatch(setDisplayName(''));
dispatch(setProgress(0));
dispatch(setRecoveryPasswordError(undefined));
dispatch(setDisplayNameError(undefined));
if (
step === AccountRestoration.Loading ||
step === AccountRestoration.Finishing ||
step === AccountRestoration.Finished
) {
dispatch(setAccountRestorationStep(AccountRestoration.RecoveryPassword));
}
}}
callback={() => {
dispatch(setRecoveryPassword(''));
dispatch(setDisplayName(''));

Loading…
Cancel
Save