11import { PortalHost } from '@gorhom/portal' ;
22import React , { useCallback , useMemo } from 'react' ;
33import { InteractionManager , View } from 'react-native' ;
4- import type { OnyxEntry } from 'react-native-onyx' ;
4+ import type { OnyxCollection , OnyxEntry } from 'react-native-onyx' ;
55import { useOnyx } from 'react-native-onyx' ;
66import HeaderGap from '@components/HeaderGap' ;
77import MoneyReportHeader from '@components/MoneyReportHeader' ;
@@ -16,15 +16,14 @@ import useThemeStyles from '@hooks/useThemeStyles';
1616import { removeFailedReport } from '@libs/actions/Report' ;
1717import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID' ;
1818import Log from '@libs/Log' ;
19- import { shouldDisplayReportTableView , shouldWaitForTransactions as shouldWaitForTransactionsUtil } from '@libs/MoneyRequestReportUtils' ;
19+ import { selectAllTransactionsForReport , shouldDisplayReportTableView , shouldWaitForTransactions as shouldWaitForTransactionsUtil } from '@libs/MoneyRequestReportUtils' ;
2020import navigationRef from '@libs/Navigation/navigationRef' ;
2121import { getFilteredReportActionsForReportView , getOneTransactionThreadReportID , isMoneyRequestAction } from '@libs/ReportActionsUtils' ;
2222import { canEditReportAction , getReportOfflinePendingActionAndErrors , isReportTransactionThread } from '@libs/ReportUtils' ;
2323import { buildCannedSearchQuery } from '@libs/SearchQueryUtils' ;
2424import Navigation from '@navigation/Navigation' ;
2525import ReportActionsView from '@pages/home/report/ReportActionsView' ;
2626import ReportFooter from '@pages/home/report/ReportFooter' ;
27- import CONST from '@src/CONST' ;
2827import NAVIGATORS from '@src/NAVIGATORS' ;
2928import ONYXKEYS from '@src/ONYXKEYS' ;
3029import type { Route } from '@src/ROUTES' ;
@@ -48,9 +47,6 @@ type MoneyRequestReportViewProps = {
4847
4948 /** The `backTo` route that should be used when clicking back button */
5049 backToRoute : Route | undefined ;
51-
52- /** All transactions grouped by reportID */
53- transactionsAndViolationsByReport : OnyxTypes . ReportTransactionsAndViolationsDerivedValue ;
5450} ;
5551
5652function goBackFromSearchMoneyRequest ( ) {
@@ -88,7 +84,7 @@ function getParentReportAction(parentReportActions: OnyxEntry<OnyxTypes.ReportAc
8884 return parentReportActions [ parentReportActionID ] ;
8985}
9086
91- function MoneyRequestReportView ( { report, policy, reportMetadata, shouldDisplayReportFooter, backToRoute, transactionsAndViolationsByReport = { } } : MoneyRequestReportViewProps ) {
87+ function MoneyRequestReportView ( { report, policy, reportMetadata, shouldDisplayReportFooter, backToRoute} : MoneyRequestReportViewProps ) {
9288 const styles = useThemeStyles ( ) ;
9389 const { isOffline} = useNetwork ( ) ;
9490
@@ -101,8 +97,11 @@ function MoneyRequestReportView({report, policy, reportMetadata, shouldDisplayRe
10197 const { reportActions : unfilteredReportActions , hasNewerActions, hasOlderActions} = usePaginatedReportActions ( reportID ) ;
10298 const reportActions = getFilteredReportActionsForReportView ( unfilteredReportActions ) ;
10399
104- const { transactions : reportTransactions } = transactionsAndViolationsByReport [ reportID ?? CONST . DEFAULT_NUMBER_ID ] ;
105- const transactions = useMemo ( ( ) => Object . values ( reportTransactions ?? { } ) ?? [ ] , [ reportTransactions ] ) ;
100+ const [ transactions ] = useOnyx ( ONYXKEYS . COLLECTION . TRANSACTION , {
101+ selector : ( allTransactions : OnyxCollection < OnyxTypes . Transaction > ) => selectAllTransactionsForReport ( allTransactions , reportID , reportActions ) ,
102+ canBeMissing : true ,
103+ } ) ;
104+
106105 const reportTransactionIDs = transactions ?. map ( ( transaction ) => transaction . transactionID ) ;
107106 const transactionThreadReportID = getOneTransactionThreadReportID ( report , chatReport , reportActions ?? [ ] , isOffline , reportTransactionIDs ) ;
108107
@@ -218,7 +217,7 @@ function MoneyRequestReportView({report, policy, reportMetadata, shouldDisplayRe
218217 < MoneyRequestReportActionsList
219218 report = { report }
220219 policy = { policy }
221- transactionsAndViolationsByReport = { transactionsAndViolationsByReport }
220+ transactions = { transactions }
222221 newTransactions = { newTransactions }
223222 reportActions = { reportActions }
224223 hasOlderActions = { hasOlderActions }
@@ -234,7 +233,6 @@ function MoneyRequestReportView({report, policy, reportMetadata, shouldDisplayRe
234233 hasOlderActions = { hasOlderActions }
235234 parentReportAction = { parentReportAction }
236235 transactionThreadReportID = { transactionThreadReportID }
237- transactionsAndViolationsByReport = { transactionsAndViolationsByReport }
238236 />
239237 ) }
240238 { shouldDisplayReportFooter ? (
0 commit comments