From e072009468a3a172369a36bf90801a02d8d5d9ae Mon Sep 17 00:00:00 2001 From: Rodrigo Lino da Costa <5201282+rlinoz@users.noreply.github.com> Date: Tue, 24 Jun 2025 08:24:02 -0700 Subject: [PATCH] Revert "open Expensify Travel inside webview on native app" --- src/ROUTES.ts | 4 -- src/SCREENS.ts | 1 - .../ModalStackNavigators/index.tsx | 1 - src/libs/Navigation/linkingConfig/config.ts | 1 - src/libs/Navigation/types.ts | 4 -- src/libs/actions/Link.ts | 31 +------------- src/libs/openTravelDotLink/index.native.ts | 20 --------- src/libs/openTravelDotLink/index.ts | 13 ------ src/pages/Travel/TravelDotLinkWebview.tsx | 41 ------------------- .../FloatingActionButtonAndPopover.tsx | 13 +++--- 10 files changed, 9 insertions(+), 120 deletions(-) delete mode 100644 src/libs/openTravelDotLink/index.native.ts delete mode 100644 src/libs/openTravelDotLink/index.ts delete mode 100644 src/pages/Travel/TravelDotLinkWebview.tsx diff --git a/src/ROUTES.ts b/src/ROUTES.ts index 67f9ed4da2d9f..f09b9e286f56e 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -1938,10 +1938,6 @@ const ROUTES = { getRoute: (backTo?: string) => getUrlWithBackToParam('change-workspace-educational', backTo), }, TRAVEL_MY_TRIPS: 'travel', - TRAVEL_DOT_LINK_WEB_VIEW: { - route: 'travel-dot-link', - getRoute: (token: string, isTestAccount?: boolean) => `travel-dot-link?token=${token}&isTestAccount=${isTestAccount}` as const, - }, TRAVEL_TCS: { route: 'travel/terms/:domain/accept', getRoute: (domain: string, backTo?: string) => getUrlWithBackToParam(`travel/terms/${domain}/accept`, backTo), diff --git a/src/SCREENS.ts b/src/SCREENS.ts index 906d8651e969d..8ba2d6d8673e2 100644 --- a/src/SCREENS.ts +++ b/src/SCREENS.ts @@ -35,7 +35,6 @@ const SCREENS = { DOMAIN_PERMISSION_INFO: 'Travel_DomainPermissionInfo', PUBLIC_DOMAIN_ERROR: 'Travel_PublicDomainError', WORKSPACE_ADDRESS: 'Travel_WorkspaceAddress', - TRAVEL_DOT_LINK_WEB_VIEW: 'Travel_DotLinkWebView', }, SEARCH: { ROOT: 'Search_Root', diff --git a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx index 9bb45acbb06db..1bdcfb6af5ea7 100644 --- a/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx +++ b/src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx @@ -130,7 +130,6 @@ const MoneyRequestModalStackNavigator = createModalStackNavigator({ [SCREENS.TRAVEL.MY_TRIPS]: () => require('../../../../pages/Travel/MyTripsPage').default, - [SCREENS.TRAVEL.TRAVEL_DOT_LINK_WEB_VIEW]: () => require('../../../../pages/Travel/TravelDotLinkWebview').default, [SCREENS.TRAVEL.TCS]: () => require('../../../../pages/Travel/TravelTerms').default, [SCREENS.TRAVEL.UPGRADE]: () => require('../../../../pages/Travel/TravelUpgrade').default, [SCREENS.TRAVEL.TRIP_SUMMARY]: () => require('../../../../pages/Travel/TripSummaryPage').default, diff --git a/src/libs/Navigation/linkingConfig/config.ts b/src/libs/Navigation/linkingConfig/config.ts index 7782a21a4472c..93c7c79c715fe 100644 --- a/src/libs/Navigation/linkingConfig/config.ts +++ b/src/libs/Navigation/linkingConfig/config.ts @@ -1489,7 +1489,6 @@ const config: LinkingOptions['config'] = { [SCREENS.RIGHT_MODAL.TRAVEL]: { screens: { [SCREENS.TRAVEL.MY_TRIPS]: ROUTES.TRAVEL_MY_TRIPS, - [SCREENS.TRAVEL.TRAVEL_DOT_LINK_WEB_VIEW]: ROUTES.TRAVEL_DOT_LINK_WEB_VIEW.route, [SCREENS.TRAVEL.UPGRADE]: ROUTES.TRAVEL_UPGRADE.route, [SCREENS.TRAVEL.TCS]: ROUTES.TRAVEL_TCS.route, [SCREENS.TRAVEL.TRIP_SUMMARY]: ROUTES.TRAVEL_TRIP_SUMMARY.route, diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 7f32f9b3dbf78..f90f0f147a83c 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -1718,10 +1718,6 @@ type RightModalNavigatorParamList = { type TravelNavigatorParamList = { [SCREENS.TRAVEL.MY_TRIPS]: undefined; - [SCREENS.TRAVEL.TRAVEL_DOT_LINK_WEB_VIEW]: { - token: string; - isTestAccount?: boolean; - }; [SCREENS.TRAVEL.TRIP_SUMMARY]: { reportID: string; transactionID: string; diff --git a/src/libs/actions/Link.ts b/src/libs/actions/Link.ts index eb3bb9a8a01a3..a23961059330d 100644 --- a/src/libs/actions/Link.ts +++ b/src/libs/actions/Link.ts @@ -219,33 +219,4 @@ function openExternalLinkWithToken(url: string, shouldSkipCustomSafariLogic = fa ); } -function getTravelDotLink(policyID: OnyxEntry) { - if (policyID === null || policyID === undefined) { - return Promise.reject(new Error('Policy ID is required')); - } - - const parameters: GenerateSpotnanaTokenParams = { - policyID, - }; - - // eslint-disable-next-line rulesdir/no-api-side-effects-method - return API.makeRequestWithSideEffects(SIDE_EFFECT_REQUEST_COMMANDS.GENERATE_SPOTNANA_TOKEN, parameters, {}).then((response) => { - if (!response?.spotnanaToken) { - throw new Error('Failed to generate spotnana token.'); - } - return response; - }); -} - -export { - buildOldDotURL, - openOldDotLink, - openExternalLink, - openLink, - getInternalNewExpensifyPath, - getInternalExpensifyPath, - openTravelDotLink, - buildTravelDotURL, - openExternalLinkWithToken, - getTravelDotLink, -}; +export {buildOldDotURL, openOldDotLink, openExternalLink, openLink, getInternalNewExpensifyPath, getInternalExpensifyPath, openTravelDotLink, buildTravelDotURL, openExternalLinkWithToken}; diff --git a/src/libs/openTravelDotLink/index.native.ts b/src/libs/openTravelDotLink/index.native.ts deleted file mode 100644 index bcc18a05edcd6..0000000000000 --- a/src/libs/openTravelDotLink/index.native.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {getTravelDotLink} from '@libs/actions/Link'; -import Navigation from '@libs/Navigation/Navigation'; -import ROUTES from '@src/ROUTES'; - -const openTravelDotLink = (activePolicyID?: string) => { - getTravelDotLink(activePolicyID) - ?.then((response) => { - if (response.spotnanaToken) { - Navigation.navigate(ROUTES.TRAVEL_DOT_LINK_WEB_VIEW.getRoute(response.spotnanaToken, response.isTestAccount)); - return; - } - Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); - }) - ?.catch((error) => { - console.error('Failed to get travel dot link:', error); - Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); - }); -}; - -export default openTravelDotLink; diff --git a/src/libs/openTravelDotLink/index.ts b/src/libs/openTravelDotLink/index.ts deleted file mode 100644 index e470711660497..0000000000000 --- a/src/libs/openTravelDotLink/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import {openTravelDotLink as openTravelDotLinkWeb} from '@libs/actions/Link'; -import Navigation from '@libs/Navigation/Navigation'; -import ROUTES from '@src/ROUTES'; - -const openTravelDotLink = (activePolicyID?: string) => { - openTravelDotLinkWeb(activePolicyID) - ?.then(() => {}) - ?.catch(() => { - Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); - }); -}; - -export default openTravelDotLink; diff --git a/src/pages/Travel/TravelDotLinkWebview.tsx b/src/pages/Travel/TravelDotLinkWebview.tsx deleted file mode 100644 index 3f4b49fde8e8b..0000000000000 --- a/src/pages/Travel/TravelDotLinkWebview.tsx +++ /dev/null @@ -1,41 +0,0 @@ -import type {StackScreenProps} from '@react-navigation/stack'; -import React from 'react'; -import WebView from 'react-native-webview'; -import HeaderWithBackButton from '@components/HeaderWithBackButton'; -import ScreenWrapper from '@components/ScreenWrapper'; -import useLocalize from '@hooks/useLocalize'; -import {buildTravelDotURL} from '@libs/actions/Link'; -import type {TravelNavigatorParamList} from '@libs/Navigation/types'; -import type SCREENS from '@src/SCREENS'; - -type TravelDotLinkWebviewProps = StackScreenProps; - -function TravelDotLinkWebview({route}: TravelDotLinkWebviewProps) { - const {translate} = useLocalize(); - const {token, isTestAccount} = route.params; - - const url = buildTravelDotURL(token, isTestAccount ?? false); - - return ( - - - - - ); -} - -TravelDotLinkWebview.displayName = 'TravelDotLinkWebview'; - -export default TravelDotLinkWebview; diff --git a/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx b/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx index 3a290bce3859b..235cb508b343d 100644 --- a/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx +++ b/src/pages/home/sidebar/FloatingActionButtonAndPopover.tsx @@ -23,7 +23,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import useWindowDimensions from '@hooks/useWindowDimensions'; import {startMoneyRequest} from '@libs/actions/IOU'; -import {openOldDotLink} from '@libs/actions/Link'; +import {openOldDotLink, openTravelDotLink} from '@libs/actions/Link'; import {navigateToQuickAction} from '@libs/actions/QuickActionNavigation'; import {createNewReport, startNewChat} from '@libs/actions/Report'; import {isAnonymousUser} from '@libs/actions/Session'; @@ -33,7 +33,6 @@ import interceptAnonymousUser from '@libs/interceptAnonymousUser'; import navigateAfterInteraction from '@libs/Navigation/navigateAfterInteraction'; import Navigation from '@libs/Navigation/Navigation'; import {hasSeenTourSelector} from '@libs/onboardingSelectors'; -import openTravelDotLink from '@libs/openTravelDotLink'; import { areAllGroupPoliciesExpenseChatDisabled, canSendInvoice as canSendInvoicePolicyUtils, @@ -390,10 +389,14 @@ function FloatingActionButtonAndPopover({onHideCreateMenu, onShowCreateMenu, isT const openTravel = useCallback(() => { if (isTravelEnabled) { - openTravelDotLink(activePolicy?.id); - return; + openTravelDotLink(activePolicy?.id) + ?.then(() => {}) + ?.catch(() => { + Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); + }); + } else { + Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); } - Navigation.navigate(ROUTES.TRAVEL_MY_TRIPS); }, [activePolicy, isTravelEnabled]); const menuItems = [