Skip to content

Commit 04cb952

Browse files
Redirect to multi-level tag import after workspace upgrade
1 parent 6b934d1 commit 04cb952

1 file changed

Lines changed: 26 additions & 12 deletions

File tree

src/pages/workspace/tags/ImportTagsOptionsPage.tsx

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, {useMemo, useState} from 'react';
1+
import {useFocusEffect} from '@react-navigation/native';
2+
import React, {useCallback, useMemo, useState} from 'react';
23
import {useOnyx} from 'react-native-onyx';
34
import FullPageOfflineBlockingView from '@components/BlockingViews/FullPageOfflineBlockingView';
45
import ConfirmModal from '@components/ConfirmModal';
@@ -52,6 +53,7 @@ function ImportTagsOptionsPage({route}: ImportTagsOptionsPageProps) {
5253
const [isSwitchSingleToMultipleLevelTagWarningModalVisible, setIsSwitchSingleToMultipleLevelTagWarningModalVisible] = useState(false);
5354

5455
const [isDownloadFailureModalVisible, setIsDownloadFailureModalVisible] = useState(false);
56+
const [shouldRunPostUpgradeFlow, setShouldRunPostUpgradeFlow] = useState(false);
5557
const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, {canBeMissing: true});
5658
const [policyTagLists, isMultiLevelTags, hasDependentTags, hasIndependentTags] = useMemo(
5759
() => [getTagLists(policyTags), isMultiLevelTagsPolicyUtils(policyTags), hasDependentTagsPolicyUtils(policy, policyTags), hasIndependentTagsPolicyUtils(policy, policyTags)],
@@ -70,6 +72,27 @@ function ImportTagsOptionsPage({route}: ImportTagsOptionsPageProps) {
7072
if (hasAccountingConnections) {
7173
return <NotFoundPage />;
7274
}
75+
const startMultiLevelTagImportFlow = () => {
76+
setImportedSpreadsheetIsImportingMultiLevelTags(true);
77+
if (hasVisibleTags) {
78+
setIsSwitchSingleToMultipleLevelTagWarningModalVisible(true);
79+
} else {
80+
cleanPolicyTags(policyID);
81+
Navigation.navigate(
82+
isQuickSettingsFlow ? ROUTES.SETTINGS_TAGS_IMPORT.getRoute(policyID, ROUTES.SETTINGS_TAGS_ROOT.getRoute(policyID, backTo)) : ROUTES.WORKSPACE_TAGS_IMPORT.getRoute(policyID),
83+
);
84+
}
85+
};
86+
87+
useFocusEffect(
88+
useCallback(() => {
89+
if (!shouldRunPostUpgradeFlow || !isControlPolicy(policy)) {
90+
return;
91+
}
92+
startMultiLevelTagImportFlow();
93+
setShouldRunPostUpgradeFlow(false);
94+
}, [shouldRunPostUpgradeFlow, policy, hasVisibleTags, policyID, isQuickSettingsFlow, backTo]),
95+
);
7396

7497
return (
7598
<AccessOrNotFoundWrapper
@@ -115,20 +138,11 @@ function ImportTagsOptionsPage({route}: ImportTagsOptionsPageProps) {
115138
shouldShowRightIcon
116139
onPress={() => {
117140
if (!isControlPolicy(policy)) {
141+
setShouldRunPostUpgradeFlow(true);
118142
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.multiLevelTags.alias, Navigation.getActiveRoute()));
119143
return;
120144
}
121-
setImportedSpreadsheetIsImportingMultiLevelTags(true);
122-
if (hasVisibleTags) {
123-
setIsSwitchSingleToMultipleLevelTagWarningModalVisible(true);
124-
} else {
125-
cleanPolicyTags(policyID);
126-
Navigation.navigate(
127-
isQuickSettingsFlow
128-
? ROUTES.SETTINGS_TAGS_IMPORT.getRoute(policyID, ROUTES.SETTINGS_TAGS_ROOT.getRoute(policyID, backTo))
129-
: ROUTES.WORKSPACE_TAGS_IMPORT.getRoute(policyID),
130-
);
131-
}
145+
startMultiLevelTagImportFlow();
132146
}}
133147
/>
134148
</FullPageOfflineBlockingView>

0 commit comments

Comments
 (0)