Skip to content

Commit e00ec0a

Browse files
committed
fix deeplinking issue
1 parent 38d880b commit e00ec0a

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

src/pages/settings/Security/MergeAccounts/AccountDetailsPage.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import ScreenWrapper from '@components/ScreenWrapper';
1414
import Text from '@components/Text';
1515
import TextInput from '@components/TextInput';
1616
import useAutoFocusInput from '@hooks/useAutoFocusInput';
17+
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1718
import useLocalize from '@hooks/useLocalize';
1819
import useOnyx from '@hooks/useOnyx';
1920
import useThemeStyles from '@hooks/useThemeStyles';
@@ -60,6 +61,8 @@ function AccountDetailsPage() {
6061
const navigation = useNavigation();
6162
const [userEmailOrPhone] = useOnyx(ONYXKEYS.SESSION, {selector: (session) => session?.email, canBeMissing: true});
6263
const [getValidateCodeForAccountMerge] = useOnyx(ONYXKEYS.ACCOUNT, {selector: (account) => account?.getValidateCodeForAccountMerge, canBeMissing: true});
64+
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
65+
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
6366
const {params} = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.MERGE_ACCOUNTS.ACCOUNT_DETAILS>>();
6467
const [email, setEmail] = useState(params?.email ?? '');
6568
const {inputCallbackRef} = useAutoFocusInput();
@@ -99,6 +102,22 @@ function AccountDetailsPage() {
99102
}, [errorKey, email]),
100103
);
101104

105+
useFocusEffect(
106+
useCallback(() => {
107+
const task = InteractionManager.runAfterInteractions(() => {
108+
if (privateSubscription?.type !== CONST.SUBSCRIPTION.TYPE.INVOICING) {
109+
return;
110+
}
111+
112+
Navigation.navigate(
113+
ROUTES.SETTINGS_MERGE_ACCOUNTS_RESULT.getRoute(currentUserPersonalDetails.login ?? '', CONST.MERGE_ACCOUNT_RESULTS.ERR_INVOICING, ROUTES.SETTINGS_SECURITY),
114+
);
115+
});
116+
117+
return () => task.cancel();
118+
}, [privateSubscription?.type, currentUserPersonalDetails.login]),
119+
);
120+
102121
useEffect(() => {
103122
const unsubscribe = navigation.addListener('blur', () => {
104123
clearGetValidateCodeForAccountMerge();

src/pages/settings/Security/MergeAccounts/AccountValidatePage.tsx

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import {useFocusEffect, useNavigation, useRoute} from '@react-navigation/native';
22
import React, {useCallback, useEffect, useRef} from 'react';
3-
import {View} from 'react-native';
3+
import {InteractionManager, View} from 'react-native';
44
import type {ValueOf} from 'type-fest';
55
import HeaderWithBackButton from '@components/HeaderWithBackButton';
66
import ScreenWrapper from '@components/ScreenWrapper';
77
import ScrollView from '@components/ScrollView';
88
import Text from '@components/Text';
99
import ValidateCodeActionForm from '@components/ValidateCodeActionForm';
1010
import type {ValidateCodeFormHandle} from '@components/ValidateCodeActionModal/ValidateCodeForm/BaseValidateCodeForm';
11+
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1112
import useLocalize from '@hooks/useLocalize';
1213
import useOnyx from '@hooks/useOnyx';
1314
import useThemeStyles from '@hooks/useThemeStyles';
@@ -83,6 +84,9 @@ function AccountValidatePage() {
8384
canBeMissing: true,
8485
});
8586

87+
const [privateSubscription] = useOnyx(ONYXKEYS.NVP_PRIVATE_SUBSCRIPTION, {canBeMissing: true});
88+
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
89+
8690
const {params} = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.MERGE_ACCOUNTS.ACCOUNT_VALIDATE>>();
8791

8892
const email = params.login ?? '';
@@ -116,6 +120,22 @@ function AccountValidatePage() {
116120
}, [errorPage, email]),
117121
);
118122

123+
useFocusEffect(
124+
useCallback(() => {
125+
const task = InteractionManager.runAfterInteractions(() => {
126+
if (privateSubscription?.type !== CONST.SUBSCRIPTION.TYPE.INVOICING) {
127+
return;
128+
}
129+
130+
Navigation.navigate(
131+
ROUTES.SETTINGS_MERGE_ACCOUNTS_RESULT.getRoute(currentUserPersonalDetails.login ?? '', CONST.MERGE_ACCOUNT_RESULTS.ERR_INVOICING, ROUTES.SETTINGS_SECURITY),
132+
);
133+
});
134+
135+
return () => task.cancel();
136+
}, [privateSubscription?.type, currentUserPersonalDetails.login]),
137+
);
138+
119139
useEffect(() => {
120140
const unsubscribe = navigation.addListener('blur', () => {
121141
clearGetValidateCodeForAccountMerge();

0 commit comments

Comments
 (0)