diff --git a/src/CONST/index.ts b/src/CONST/index.ts index c1125ae29715f..b6bc10f06e677 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -2759,14 +2759,6 @@ const CONST = { CONFIRM: 'confirm', }, }, - - SUBSCRIPTION_SIZE: { - PAGE_NAME: { - SIZE: 'size', - CONFIRM: 'confirm', - }, - }, - MISSING_PERSONAL_DETAILS_INDEXES: { MAPPING: { LEGAL_NAME: 0, diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 8932191e81650..8c2340f0fd229 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -280,14 +280,8 @@ const ROUTES = { getRoute: (backTo?: string) => getUrlWithBackToParam('settings/subscription', backTo), }, SETTINGS_SUBSCRIPTION_SIZE: { - route: 'settings/subscription/subscription-size/:subPage?', - getRoute: (canChangeSize?: 0 | 1, subPage?: string) => { - const baseRoute = 'settings/subscription/subscription-size'; - const subPageParam = subPage ? `/${subPage}` : ''; - const canChangeSizeParam = canChangeSize !== undefined ? `?canChangeSize=${canChangeSize as number}` : ''; - - return `${baseRoute}${subPageParam}${canChangeSizeParam}` as const; - }, + route: 'settings/subscription/subscription-size', + getRoute: (canChangeSize: 0 | 1) => `settings/subscription/subscription-size?canChangeSize=${canChangeSize as number}` as const, }, SETTINGS_SUBSCRIPTION_SETTINGS_DETAILS: 'settings/subscription/details', SETTINGS_SUBSCRIPTION_ADD_PAYMENT_CARD: 'settings/subscription/add-payment-card', diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index ec6e77b0e67c6..550e6d4929f6e 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -614,8 +614,6 @@ type SettingsNavigatorParamList = { }; [SCREENS.SETTINGS.SUBSCRIPTION.SIZE]: { canChangeSize: 0 | 1; - subPage?: string; - action?: 'edit'; }; [SCREENS.SETTINGS.SUBSCRIPTION.SETTINGS_DETAILS]: undefined; [SCREENS.SETTINGS.SUBSCRIPTION.ADD_PAYMENT_CARD]: undefined; diff --git a/src/pages/settings/Subscription/SubscriptionSize/index.tsx b/src/pages/settings/Subscription/SubscriptionSize/index.tsx index df27460218741..287b39ebbd889 100644 --- a/src/pages/settings/Subscription/SubscriptionSize/index.tsx +++ b/src/pages/settings/Subscription/SubscriptionSize/index.tsx @@ -6,7 +6,8 @@ import ScreenWrapper from '@components/ScreenWrapper'; import useLocalize from '@hooks/useLocalize'; import useOnyx from '@hooks/useOnyx'; import usePrivateSubscription from '@hooks/usePrivateSubscription'; -import useSubPage from '@hooks/useSubPage'; +import useSubStep from '@hooks/useSubStep'; +import type {SubStepProps} from '@hooks/useSubStep/types'; import {clearDraftValues} from '@libs/actions/FormActions'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackScreenProps} from '@libs/Navigation/PlatformStackNavigation/types'; @@ -16,18 +17,14 @@ import NotFoundPage from '@pages/ErrorPage/NotFoundPage'; import {updateSubscriptionSize} from '@userActions/Subscription'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import INPUT_IDS from '@src/types/form/SubscriptionSizeForm'; import Confirmation from './substeps/Confirmation'; import Size from './substeps/Size'; -type SubscriptionSizePageProps = PlatformStackScreenProps; +const bodyContent: Array> = [Size, Confirmation]; -const pages = [ - {pageName: CONST.SUBSCRIPTION_SIZE.PAGE_NAME.SIZE, component: Size}, - {pageName: CONST.SUBSCRIPTION_SIZE.PAGE_NAME.CONFIRM, component: Confirmation}, -]; +type SubscriptionSizePageProps = PlatformStackScreenProps; function SubscriptionSizePage({route}: SubscriptionSizePageProps) { const privateSubscription = usePrivateSubscription(); @@ -38,19 +35,14 @@ function SubscriptionSizePage({route}: SubscriptionSizePageProps) { const onFinished = () => { updateSubscriptionSize(subscriptionSizeFormDraft ? Number(subscriptionSizeFormDraft[INPUT_IDS.SUBSCRIPTION_SIZE]) : 0, privateSubscription?.userCount ?? 0); - Navigation.goBack(ROUTES.SETTINGS_SUBSCRIPTION_SETTINGS_DETAILS); + Navigation.goBack(); }; - const {CurrentPage, pageIndex, prevPage, nextPage, moveTo, isRedirecting} = useSubPage({ - pages, - onFinished, - startFrom, - buildRoute: (pageName) => ROUTES.SETTINGS_SUBSCRIPTION_SIZE.getRoute(route.params?.canChangeSize, pageName), - }); + const {componentToRender: SubStep, screenIndex, nextScreen, prevScreen, moveTo} = useSubStep({bodyContent, startFrom, onFinished}); const onBackButtonPress = () => { - if (pageIndex !== 0 && startFrom === 0) { - prevPage(); + if (screenIndex !== 0 && startFrom === 0) { + prevScreen(); return; } @@ -68,7 +60,7 @@ function SubscriptionSizePage({route}: SubscriptionSizePageProps) { return ; } - if (isRedirecting || !privateSubscription) { + if (!privateSubscription) { return ; } @@ -85,9 +77,9 @@ function SubscriptionSizePage({route}: SubscriptionSizePageProps) { title={translate('subscription.subscriptionSize.title')} onBackButtonPress={onBackButtonPress} /> -