Skip to content

Commit fd56509

Browse files
madmax330allroundexperts
authored andcommitted
Merge pull request Expensify#45730 from allroundexperts/fix-45689
fix: redirect to proper place after upgrade
1 parent 899b8c7 commit fd56509

File tree

7 files changed

+50
-18
lines changed

7 files changed

+50
-18
lines changed

src/components/ConnectToNetSuiteButton/index.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ function ConnectToNetSuiteButton({policyID, shouldDisconnectIntegrationBeforeCon
5656
<Button
5757
onPress={() => {
5858
if (!isControlPolicy(policy)) {
59-
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.netsuite.alias));
59+
Navigation.navigate(
60+
ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.netsuite.alias, ROUTES.POLICY_ACCOUNTING_NETSUITE_TOKEN_INPUT.getRoute(policyID)),
61+
);
6062
return;
6163
}
6264

src/components/ConnectToSageIntacctButton/index.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,13 @@ function ConnectToSageIntacctButton({policyID, shouldDisconnectIntegrationBefore
6363
<Button
6464
onPress={() => {
6565
if (!isControlPolicy(policy)) {
66-
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.intacct.alias));
66+
Navigation.navigate(
67+
ROUTES.WORKSPACE_UPGRADE.getRoute(
68+
policyID,
69+
CONST.UPGRADE_FEATURE_INTRO_MAPPING.intacct.alias,
70+
ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_PREREQUISITES.getRoute(policyID),
71+
),
72+
);
6773
return;
6874
}
6975

src/pages/workspace/categories/CategorySettingsPage.tsx

+14-2
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,13 @@ function CategorySettingsPage({route, policyCategories, navigation}: CategorySet
141141
description={translate(`workspace.categories.glCode`)}
142142
onPress={() => {
143143
if (!isControlPolicy(policy)) {
144-
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(route.params.policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.glAndPayrollCodes.alias));
144+
Navigation.navigate(
145+
ROUTES.WORKSPACE_UPGRADE.getRoute(
146+
route.params.policyID,
147+
CONST.UPGRADE_FEATURE_INTRO_MAPPING.glAndPayrollCodes.alias,
148+
ROUTES.WORKSPACE_CATEGORY_GL_CODE.getRoute(route.params.policyID, policyCategory.name),
149+
),
150+
);
145151
return;
146152
}
147153
Navigation.navigate(ROUTES.WORKSPACE_CATEGORY_GL_CODE.getRoute(route.params.policyID, policyCategory.name));
@@ -155,7 +161,13 @@ function CategorySettingsPage({route, policyCategories, navigation}: CategorySet
155161
description={translate(`workspace.categories.payrollCode`)}
156162
onPress={() => {
157163
if (!isControlPolicy(policy)) {
158-
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(route.params.policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.glAndPayrollCodes.alias));
164+
Navigation.navigate(
165+
ROUTES.WORKSPACE_UPGRADE.getRoute(
166+
route.params.policyID,
167+
CONST.UPGRADE_FEATURE_INTRO_MAPPING.glAndPayrollCodes.alias,
168+
ROUTES.WORKSPACE_CATEGORY_PAYROLL_CODE.getRoute(route.params.policyID, policyCategory.name),
169+
),
170+
);
159171
return;
160172
}
161173
Navigation.navigate(ROUTES.WORKSPACE_CATEGORY_PAYROLL_CODE.getRoute(route.params.policyID, policyCategory.name));

src/pages/workspace/tags/TagSettingsPage.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,13 @@ function TagSettingsPage({route, policyTags, navigation}: TagSettingsPageProps)
7272

7373
const navigateToEditGlCode = () => {
7474
if (!PolicyUtils.isControlPolicy(policy)) {
75-
Navigation.navigate(ROUTES.WORKSPACE_UPGRADE.getRoute(route.params.policyID, CONST.UPGRADE_FEATURE_INTRO_MAPPING.glCodes.alias));
75+
Navigation.navigate(
76+
ROUTES.WORKSPACE_UPGRADE.getRoute(
77+
route.params.policyID,
78+
CONST.UPGRADE_FEATURE_INTRO_MAPPING.glCodes.alias,
79+
ROUTES.WORKSPACE_TAG_GL_CODE.getRoute(policy?.id ?? '', route.params.orderWeight, route.params.tagName),
80+
),
81+
);
7682
return;
7783
}
7884
Navigation.navigate(ROUTES.WORKSPACE_TAG_GL_CODE.getRoute(route.params.policyID, route.params.orderWeight, currentPolicyTag.name));

src/pages/workspace/upgrade/UpgradeConfirmation.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import ROUTES from '@src/ROUTES';
88

99
type Props = {
1010
policyName: string;
11-
policyID: string;
11+
onConfirmUpgrade: () => void;
1212
};
1313

14-
function UpgradeConfirmation({policyName, policyID}: Props) {
14+
function UpgradeConfirmation({policyName, onConfirmUpgrade}: Props) {
1515
const {translate} = useLocalize();
1616
const styles = useThemeStyles();
1717

@@ -31,7 +31,7 @@ function UpgradeConfirmation({policyName, policyID}: Props) {
3131
</>
3232
}
3333
shouldShowButton
34-
onButtonPress={() => Navigation.goBack(ROUTES.WORKSPACE_PROFILE.getRoute(policyID))}
34+
onButtonPress={onConfirmUpgrade}
3535
buttonText={translate('workspace.upgrade.completed.gotIt')}
3636
/>
3737
);

src/pages/workspace/upgrade/WorkspaceUpgradePage.tsx

+15-4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import useNetwork from '@hooks/useNetwork';
88
import useThemeStyles from '@hooks/useThemeStyles';
99
import Navigation from '@libs/Navigation/Navigation';
1010
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
11+
import {isControlPolicy} from '@libs/PolicyUtils';
1112
import NotFoundPage from '@pages/ErrorPage/NotFoundPage';
1213
import CONST from '@src/CONST';
1314
import * as Policy from '@src/libs/actions/Policy/Policy';
@@ -26,15 +27,25 @@ function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) {
2627
const [policy] = useOnyx(`policy_${policyID}`);
2728
const {isOffline} = useNetwork();
2829

30+
const isUpgraded = React.useMemo(() => isControlPolicy(policy), [policy]);
31+
2932
if (!feature || !policy) {
3033
return <NotFoundPage />;
3134
}
3235

3336
const upgradeToCorporate = () => {
34-
Policy.upgradeToCorporate(policy.id, feature.id);
37+
Policy.upgradeToCorporate(policy.id, feature.name);
3538
};
3639

37-
const isUpgraded = policy.type === CONST.POLICY.TYPE.CORPORATE;
40+
const confirmUpgrade = () => {
41+
switch (feature.id) {
42+
case CONST.UPGRADE_FEATURE_INTRO_MAPPING.reportFields.id:
43+
Policy.enablePolicyReportFields(policyID, true);
44+
return Navigation.navigate(ROUTES.WORKSPACE_MORE_FEATURES.getRoute(policyID), CONST.NAVIGATION.TYPE.UP);
45+
default:
46+
return route.params.backTo ? Navigation.navigate(route.params.backTo, CONST.NAVIGATION.TYPE.UP) : Navigation.goBack();
47+
}
48+
};
3849

3950
return (
4051
<ScreenWrapper
@@ -44,11 +55,11 @@ function WorkspaceUpgradePage({route}: WorkspaceUpgradePageProps) {
4455
>
4556
<HeaderWithBackButton
4657
title={translate('common.upgrade')}
47-
onBackButtonPress={() => Navigation.goBack(route.params.backTo ?? ROUTES.WORKSPACE_PROFILE.getRoute(policyID))}
58+
onBackButtonPress={() => Navigation.goBack()}
4859
/>
4960
{isUpgraded && (
5061
<UpgradeConfirmation
51-
policyID={policy.id}
62+
onConfirmUpgrade={confirmUpgrade}
5263
policyName={policy.name}
5364
/>
5465
)}

src/styles/index.ts

+1-6
Original file line numberDiff line numberDiff line change
@@ -2735,15 +2735,10 @@ const styles = (theme: ThemeColors) =>
27352735
width: 110,
27362736
},
27372737

2738-
workspaceUpgradeIntroBox: ({isExtraSmallScreenWidth, isSmallScreenWidth}: WorkspaceUpgradeIntroBoxParams): ViewStyle => {
2738+
workspaceUpgradeIntroBox: ({isExtraSmallScreenWidth}: WorkspaceUpgradeIntroBoxParams): ViewStyle => {
27392739
let paddingHorizontal = spacing.ph5;
27402740
let paddingVertical = spacing.pv5;
27412741

2742-
if (isSmallScreenWidth) {
2743-
paddingHorizontal = spacing.ph4;
2744-
paddingVertical = spacing.pv4;
2745-
}
2746-
27472742
if (isExtraSmallScreenWidth) {
27482743
paddingHorizontal = spacing.ph2;
27492744
paddingVertical = spacing.pv2;

0 commit comments

Comments
 (0)