From b42e0c59e1fbe2f041a9fcc83e7afd56a49a84a9 Mon Sep 17 00:00:00 2001 From: Puneet Lath Date: Tue, 4 Feb 2025 16:27:29 -0500 Subject: [PATCH] Merge pull request #56381 from Expensify/revert-55015-fix/54058 Revert "fix: navigate to parent report on delete track expense" (cherry picked from commit 1ab069537524a71f169fdb591185b144caa9941c) (CP triggered by roryabraham) --- src/libs/Navigation/Navigation.ts | 24 +----------------------- src/libs/ReportUtils.ts | 11 ++--------- src/pages/ReportDetailsPage.tsx | 4 ++-- tests/actions/IOUTest.ts | 12 ------------ 4 files changed, 5 insertions(+), 46 deletions(-) diff --git a/src/libs/Navigation/Navigation.ts b/src/libs/Navigation/Navigation.ts index f68eaf5d57b0..095ed2684a6d 100644 --- a/src/libs/Navigation/Navigation.ts +++ b/src/libs/Navigation/Navigation.ts @@ -11,7 +11,7 @@ import NAVIGATORS from '@src/NAVIGATORS'; import ONYXKEYS from '@src/ONYXKEYS'; import type {HybridAppRoute, Route} from '@src/ROUTES'; import ROUTES, {HYBRID_APP_ROUTES} from '@src/ROUTES'; -import SCREENS, {PROTECTED_SCREENS} from '@src/SCREENS'; +import {PROTECTED_SCREENS} from '@src/SCREENS'; import type {Screen} from '@src/SCREENS'; import type {Report} from '@src/types/onyx'; import originalCloseRHPFlow from './closeRHPFlow'; @@ -428,13 +428,6 @@ function getTopMostCentralPaneRouteFromRootState() { return getTopmostCentralPaneRoute(navigationRef.getRootState() as State); } -function getReportRouteByID(reportID?: string) { - if (!reportID) { - return null; - } - return navigationRef.getRootState().routes.find((r) => r.name === SCREENS.REPORT && !!r.params && 'reportID' in r.params && r.params.reportID === reportID); -} - function removeScreenFromNavigationState(screen: Screen) { isNavigationReady().then(() => { navigationRef.dispatch((state) => { @@ -449,19 +442,6 @@ function removeScreenFromNavigationState(screen: Screen) { }); } -function removeScreenFromNavigationStateByKey(key: string) { - const state = navigationRef.getRootState(); - const routes = state.routes.filter((item) => item.key !== key); - - navigationRef.current?.dispatch(() => { - return CommonActions.reset({ - ...state, - routes, - index: routes.length < state.routes.length ? state.index - 1 : state.index, - }); - }); -} - export default { setShouldPopAllStateOnUP, navigate, @@ -487,8 +467,6 @@ export default { setNavigationActionToMicrotaskQueue, getTopMostCentralPaneRouteFromRootState, removeScreenFromNavigationState, - getReportRouteByID, - removeScreenFromNavigationStateByKey, }; export {navigationRef}; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index df9e1e3304bf..e95b41e755f0 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4474,7 +4474,7 @@ function goBackToDetailsPage(report: OnyxEntry, backTo?: string) { } } -function navigateBackOnDeleteTransaction(backRoute: Route | undefined, isFromRHP?: boolean, reportIDToRemove?: string) { +function navigateBackOnDeleteTransaction(backRoute: Route | undefined, isFromRHP?: boolean) { if (!backRoute) { return; } @@ -4484,14 +4484,7 @@ function navigateBackOnDeleteTransaction(backRoute: Route | undefined, isFromRHP return; } if (isFromRHP) { - const report = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportIDToRemove}`]; - if (report && isTrackExpenseReport(report)) { - const trackReportRoute = Navigation.getReportRouteByID(reportIDToRemove); - if (trackReportRoute?.key) { - Navigation.removeScreenFromNavigationStateByKey(trackReportRoute.key); - } - } - Navigation.isNavigationReady().then(() => Navigation.dismissModal()); + Navigation.dismissModal(); } Navigation.isNavigationReady().then(() => { Navigation.goBack(backRoute); diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index eb9ee37f55b9..66b66d482bba 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -969,9 +969,9 @@ function ReportDetailsPage({policies, report, route, reportMetadata}: ReportDeta Navigation.dismissModal(); } else { setDeleteTransactionNavigateBackUrl(urlToNavigateBack); - navigateBackOnDeleteTransaction(urlToNavigateBack as Route, true, report.reportID); + navigateBackOnDeleteTransaction(urlToNavigateBack as Route, true); } - }, [iouTransactionID, requestParentReportAction, isSingleTransactionView, isTransactionDeleted, moneyRequestReport?.reportID, report.reportID]); + }, [iouTransactionID, requestParentReportAction, isSingleTransactionView, isTransactionDeleted, moneyRequestReport?.reportID]); const mentionReportContextValue = useMemo(() => ({currentReportID: report.reportID, exactlyMatch: true}), [report.reportID]); diff --git a/tests/actions/IOUTest.ts b/tests/actions/IOUTest.ts index eebaed8a607d..291d2d4ac1e3 100644 --- a/tests/actions/IOUTest.ts +++ b/tests/actions/IOUTest.ts @@ -77,19 +77,8 @@ jest.mock('@src/libs/Navigation/Navigation', () => ({ goBack: jest.fn(), getTopmostReportId: jest.fn(() => topMostReportID), setNavigationActionToMicrotaskQueue: jest.fn(), - removeScreenByKey: jest.fn(), - isNavigationReady: jest.fn(() => Promise.resolve()), - getPreviousTrackReport: jest.fn(), })); -jest.mock('@src/libs/Navigation/navigationRef', () => ({ - getRootState: () => ({ - routes: [], - }), -})); - -jest.mock('@react-navigation/native'); - jest.mock('@src/libs/actions/Report', () => { // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment const originalModule = jest.requireActual('@src/libs/actions/Report'); @@ -99,7 +88,6 @@ jest.mock('@src/libs/actions/Report', () => { notifyNewAction: jest.fn(), }; }); - jest.mock('@src/libs/Navigation/isSearchTopmostCentralPane', () => jest.fn()); const CARLOS_EMAIL = 'cmartins@expensifail.com';