Skip to content

Commit

Permalink
simplify navigation logic
Browse files Browse the repository at this point in the history
  • Loading branch information
arosiclair committed Nov 14, 2024
1 parent 6f4b6dc commit 67be3a1
Showing 1 changed file with 8 additions and 23 deletions.
31 changes: 8 additions & 23 deletions src/pages/settings/Wallet/VerifyAccountPage.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import type {StackScreenProps} from '@react-navigation/stack';
import React, {useCallback, useEffect, useState} from 'react';
import React, {useCallback, useEffect} from 'react';
import {useOnyx} from 'react-native-onyx';
import ValidateCodeActionModal from '@components/ValidateCodeActionModal';
import useLocalize from '@hooks/useLocalize';
Expand All @@ -8,7 +8,6 @@ import Navigation from '@libs/Navigation/Navigation';
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
import * as User from '@userActions/User';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
import type SCREENS from '@src/SCREENS';

type VerifyAccountPageProps = StackScreenProps<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.PROFILE.NEW_CONTACT_METHOD>;
Expand All @@ -21,7 +20,6 @@ function VerifyAccountPage({route}: VerifyAccountPageProps) {
const loginData = loginList?.[contactMethod];
const validateLoginError = ErrorUtils.getEarliestErrorField(loginData, 'validateLogin');
const [isUserValidated] = useOnyx(ONYXKEYS.USER, {selector: (user) => !!user?.validated});
const [isValidateModalVisible, setIsValidateModalVisible] = useState(true);

const navigateBackTo = route?.params?.backTo;

Expand All @@ -38,44 +36,31 @@ function VerifyAccountPage({route}: VerifyAccountPageProps) {
User.clearContactMethodErrors(contactMethod, 'validateLogin');
}, [contactMethod]);

// Handle navigation once the user is validated
useEffect(() => {
if (!isUserValidated) {
return;
}

setIsValidateModalVisible(false);

if (!navigateBackTo) {
return;
}

Navigation.navigate(navigateBackTo);
}, [isUserValidated, navigateBackTo]);

useEffect(() => {
if (isValidateModalVisible) {
return;
}

if (!isUserValidated && navigateBackTo) {
Navigation.navigate(ROUTES.SETTINGS_WALLET);
} else if (!navigateBackTo) {
if (navigateBackTo) {
Navigation.navigate(navigateBackTo);
} else {
Navigation.goBack();
}
}, [isValidateModalVisible, isUserValidated, navigateBackTo]);
}, [isUserValidated, navigateBackTo]);

return (
<ValidateCodeActionModal
sendValidateCode={() => User.requestValidateCodeAction()}
handleSubmitForm={handleSubmitForm}
validateError={validateLoginError}
hasMagicCodeBeenSent={!!loginData?.validateCodeSent}
isVisible={isValidateModalVisible}
isVisible={!isUserValidated}
title={translate('contacts.validateAccount')}
descriptionPrimary={translate('contacts.featureRequiresValidate')}
descriptionSecondary={translate('contacts.enterMagicCode', {contactMethod})}
onClose={() => setIsValidateModalVisible(false)}
clearError={clearError}
onClose={() => {}}
/>
);
}
Expand Down

0 comments on commit 67be3a1

Please sign in to comment.