From 498577ebe393ec7fa0098dfc2e448fcbcbf63778 Mon Sep 17 00:00:00 2001 From: Test Date: Wed, 18 Feb 2026 13:05:24 +0100 Subject: [PATCH 1/3] Memoize getSections computation in MoneyRequestReportNavigation --- .../MoneyRequestReportNavigation.tsx | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx index 7b39770c86aa..4ea8c3f34df2 100644 --- a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx +++ b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx @@ -1,4 +1,4 @@ -import React, {useEffect} from 'react'; +import React, {useEffect, useMemo} from 'react'; import {View} from 'react-native'; import PrevNextButtons from '@components/PrevNextButtons'; import Text from '@components/Text'; @@ -42,28 +42,41 @@ function MoneyRequestReportNavigation({reportID, shouldDisplayNarrowVersion}: Mo const archivedReportsIdSet = useArchivedReportsIdSet(); const {type, status, sortBy, sortOrder, groupBy} = lastSearchQuery?.queryJSON ?? {}; - let results: Array = []; - if (!!type && !!currentSearchResults?.data && !!currentSearchResults?.search) { + + const searchResultsData = currentSearchResults?.data; + const searchResultsSearch = currentSearchResults?.search; + const currentAccountID = currentUserDetails.accountID; + const currentUserEmail = currentUserDetails.email ?? ''; + const searchKey = lastSearchQuery?.searchKey; + + const allReports = useMemo(() => { + if (!type || !searchResultsData || !searchResultsSearch) { + return []; + } const [searchData] = getSections({ type, - data: currentSearchResults.data, - currentAccountID: currentUserDetails.accountID, - currentUserEmail: currentUserDetails.email ?? '', + data: searchResultsData, + currentAccountID, + currentUserEmail, translate, formatPhoneNumber, bankAccountList, groupBy, reportActions: exportReportActions, - currentSearch: lastSearchQuery?.searchKey, + currentSearch: searchKey, archivedReportsIDList: archivedReportsIdSet, isActionLoadingSet, cardFeeds, allReportMetadata, cardList, }); - results = getSortedSections(type, status ?? '', searchData, localeCompare, translate, sortBy, sortOrder, groupBy).map((value) => value.reportID); - } - const allReports = results; + return getSortedSections(type, status ?? '', searchData, localeCompare, translate, sortBy, sortOrder, groupBy).map((value) => value.reportID); + }, [ + type, status, sortBy, sortOrder, groupBy, searchResultsData, searchResultsSearch, + currentAccountID, currentUserEmail, translate, formatPhoneNumber, bankAccountList, + exportReportActions, searchKey, archivedReportsIdSet, isActionLoadingSet, cardFeeds, + allReportMetadata, cardList, localeCompare, + ]); const currentIndex = allReports.indexOf(reportID); const allReportsCount = lastSearchQuery?.previousLengthOfResults ?? 0; From 19416bc65213bd083af58fdf4efcaaea8f652890 Mon Sep 17 00:00:00 2001 From: Test Date: Wed, 18 Feb 2026 13:14:57 +0100 Subject: [PATCH 2/3] fix prettier --- .../MoneyRequestReportNavigation.tsx | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx index 4ea8c3f34df2..5fc148f146eb 100644 --- a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx +++ b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx @@ -72,10 +72,26 @@ function MoneyRequestReportNavigation({reportID, shouldDisplayNarrowVersion}: Mo }); return getSortedSections(type, status ?? '', searchData, localeCompare, translate, sortBy, sortOrder, groupBy).map((value) => value.reportID); }, [ - type, status, sortBy, sortOrder, groupBy, searchResultsData, searchResultsSearch, - currentAccountID, currentUserEmail, translate, formatPhoneNumber, bankAccountList, - exportReportActions, searchKey, archivedReportsIdSet, isActionLoadingSet, cardFeeds, - allReportMetadata, cardList, localeCompare, + type, + status, + sortBy, + sortOrder, + groupBy, + searchResultsData, + searchResultsSearch, + currentAccountID, + currentUserEmail, + translate, + formatPhoneNumber, + bankAccountList, + exportReportActions, + searchKey, + archivedReportsIdSet, + isActionLoadingSet, + cardFeeds, + allReportMetadata, + cardList, + localeCompare, ]); const currentIndex = allReports.indexOf(reportID); From de432071db59df14f2a8f6c49d9526eec2a4d88c Mon Sep 17 00:00:00 2001 From: Test Date: Thu, 19 Feb 2026 16:54:42 +0100 Subject: [PATCH 3/3] remove useMemo --- .../MoneyRequestReportNavigation.tsx | 33 +++---------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx index 5fc148f146eb..e422b13178a8 100644 --- a/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx +++ b/src/components/MoneyRequestReportView/MoneyRequestReportNavigation.tsx @@ -1,4 +1,4 @@ -import React, {useEffect, useMemo} from 'react'; +import React, {useEffect} from 'react'; import {View} from 'react-native'; import PrevNextButtons from '@components/PrevNextButtons'; import Text from '@components/Text'; @@ -49,10 +49,8 @@ function MoneyRequestReportNavigation({reportID, shouldDisplayNarrowVersion}: Mo const currentUserEmail = currentUserDetails.email ?? ''; const searchKey = lastSearchQuery?.searchKey; - const allReports = useMemo(() => { - if (!type || !searchResultsData || !searchResultsSearch) { - return []; - } + let allReports: Array = []; + if (!!type && !!searchResultsData && !!searchResultsSearch) { const [searchData] = getSections({ type, data: searchResultsData, @@ -70,29 +68,8 @@ function MoneyRequestReportNavigation({reportID, shouldDisplayNarrowVersion}: Mo allReportMetadata, cardList, }); - return getSortedSections(type, status ?? '', searchData, localeCompare, translate, sortBy, sortOrder, groupBy).map((value) => value.reportID); - }, [ - type, - status, - sortBy, - sortOrder, - groupBy, - searchResultsData, - searchResultsSearch, - currentAccountID, - currentUserEmail, - translate, - formatPhoneNumber, - bankAccountList, - exportReportActions, - searchKey, - archivedReportsIdSet, - isActionLoadingSet, - cardFeeds, - allReportMetadata, - cardList, - localeCompare, - ]); + allReports = getSortedSections(type, status ?? '', searchData, localeCompare, translate, sortBy, sortOrder, groupBy).map((value) => value.reportID); + } const currentIndex = allReports.indexOf(reportID); const allReportsCount = lastSearchQuery?.previousLengthOfResults ?? 0;