From d466414ca8fbd5e3d7e0d78f179eaeb4701df671 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Thu, 13 Feb 2025 16:57:04 +0100 Subject: [PATCH 1/2] fix wrong navigation in subscription flow --- src/ROUTES.ts | 2 +- src/components/Navigation/DebugTabView.tsx | 4 ++-- src/libs/Navigation/linkingConfig/config.ts | 2 +- src/libs/Navigation/types.ts | 2 +- src/pages/settings/InitialSettingsPage.tsx | 2 +- .../CardSection/BillingBanner/EarlyDiscountBanner.tsx | 2 +- src/pages/settings/Subscription/FreeTrial.tsx | 2 +- .../settings/Subscription/SubscriptionSettingsPage.tsx | 10 ++++++++-- src/pages/workspace/WorkspaceProfilePlanTypePage.tsx | 5 ++++- src/pages/workspace/upgrade/GenericFeaturesView.tsx | 2 +- src/pages/workspace/upgrade/UpgradeConfirmation.tsx | 2 +- src/pages/workspace/upgrade/UpgradeIntro.tsx | 2 +- 12 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/ROUTES.ts b/src/ROUTES.ts index b98717b51f5d..e9c901d57af8 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -133,7 +133,7 @@ const ROUTES = { SETTINGS_TIMEZONE_SELECT: 'settings/profile/timezone/select', SETTINGS_PRONOUNS: 'settings/profile/pronouns', SETTINGS_PREFERENCES: 'settings/preferences', - SETTINGS_SUBSCRIPTION: 'settings/subscription', + SETTINGS_SUBSCRIPTION: {route: 'settings/subscription', getRoute: (backTo?: string) => getUrlWithBackToParam('settings/subscription', backTo)}, SETTINGS_SUBSCRIPTION_SIZE: { route: 'settings/subscription/subscription-size', getRoute: (canChangeSize: 0 | 1) => `settings/subscription/subscription-size?canChangeSize=${canChangeSize as number}` as const, diff --git a/src/components/Navigation/DebugTabView.tsx b/src/components/Navigation/DebugTabView.tsx index db6fae0669c2..2d7f9e9ae9d8 100644 --- a/src/components/Navigation/DebugTabView.tsx +++ b/src/components/Navigation/DebugTabView.tsx @@ -82,9 +82,9 @@ function getSettingsRoute(status: IndicatorStatus | undefined, reimbursementAcco getReimbursementAccountRouteForCurrentStep(reimbursementAccount?.achData?.currentStep ?? CONST.BANK_ACCOUNT.STEP.BANK_ACCOUNT), ); case CONST.INDICATOR_STATUS.HAS_SUBSCRIPTION_ERRORS: - return ROUTES.SETTINGS_SUBSCRIPTION; + return ROUTES.SETTINGS_SUBSCRIPTION.route; case CONST.INDICATOR_STATUS.HAS_SUBSCRIPTION_INFO: - return ROUTES.SETTINGS_SUBSCRIPTION; + return ROUTES.SETTINGS_SUBSCRIPTION.route; case CONST.INDICATOR_STATUS.HAS_SYNC_ERRORS: return ROUTES.WORKSPACE_ACCOUNTING.getRoute(policyIDWithErrors); case CONST.INDICATOR_STATUS.HAS_USER_WALLET_ERRORS: diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 544f06748f4d..c439a161cdca 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -1566,7 +1566,7 @@ const config: LinkingOptions['config'] = { exact: true, }, [SCREENS.SETTINGS.SAVE_THE_WORLD]: ROUTES.SETTINGS_SAVE_THE_WORLD, - [SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: ROUTES.SETTINGS_SUBSCRIPTION, + [SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: {path: ROUTES.SETTINGS_SUBSCRIPTION.route}, [SCREENS.SETTINGS.PREFERENCES.ROOT]: { path: ROUTES.SETTINGS_PREFERENCES, // exact: true, diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index fa274d1ecf7e..eb1aba065b5d 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -322,7 +322,7 @@ type SettingsNavigatorParamList = { tagName: string; backTo?: Routes; }; - [SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: undefined; + [SCREENS.SETTINGS.SUBSCRIPTION.ROOT]: {backTo?: Routes}; [SCREENS.SETTINGS.SUBSCRIPTION.SIZE]: { canChangeSize: 0 | 1; }; diff --git a/src/pages/settings/InitialSettingsPage.tsx b/src/pages/settings/InitialSettingsPage.tsx index 827490264ff3..821b5b5eb2c2 100755 --- a/src/pages/settings/InitialSettingsPage.tsx +++ b/src/pages/settings/InitialSettingsPage.tsx @@ -212,7 +212,7 @@ function InitialSettingsPage({currentUserPersonalDetails}: InitialSettingsPagePr brickRoadIndicator: !!privateSubscription?.errors || hasSubscriptionRedDotError() ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined, badgeText: freeTrialText, badgeStyle: freeTrialText ? styles.badgeSuccess : undefined, - action: () => Navigation.navigate(ROUTES.SETTINGS_SUBSCRIPTION), + action: () => Navigation.navigate(ROUTES.SETTINGS_SUBSCRIPTION.route), }); } diff --git a/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx b/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx index 71b6c2641263..2b7cee0d2e9d 100644 --- a/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx +++ b/src/pages/settings/Subscription/CardSection/BillingBanner/EarlyDiscountBanner.tsx @@ -50,7 +50,7 @@ function EarlyDiscountBanner({isSubscriptionPage}: EarlyDiscountBannerProps) { success style={shouldUseNarrowLayout && styles.flex1} text={translate('subscription.billingBanner.earlyDiscount.claimOffer')} - onPress={() => Navigation.navigate(ROUTES.SETTINGS_SUBSCRIPTION)} + onPress={() => Navigation.navigate(ROUTES.SETTINGS_SUBSCRIPTION.getRoute(Navigation.getActiveRoute()))} /> {discountInfo?.discountType === 25 && (