11import { Str } from 'expensify-common' ;
22import React , { useMemo } from 'react' ;
33import { View } from 'react-native' ;
4+ import type { OnyxEntry } from 'react-native-onyx' ;
45import Icon from '@components/Icon' ;
56import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription' ;
67import OfflineWithFeedback from '@components/OfflineWithFeedback' ;
@@ -18,19 +19,20 @@ import variables from '@styles/variables';
1819import * as Expensicons from '@src/components/Icon/Expensicons' ;
1920import CONST from '@src/CONST' ;
2021import type { ReservationData } from '@src/libs/TripReservationUtils' ;
21- import { getReservationsFromTripTransactions , getTripReservationCode , getTripReservationIcon } from '@src/libs/TripReservationUtils' ;
22+ import { getReservationsFromTripReport , getTripReservationCode , getTripReservationIcon } from '@src/libs/TripReservationUtils' ;
2223import ROUTES from '@src/ROUTES' ;
24+ import type { Report } from '@src/types/onyx' ;
2325import type { Reservation , ReservationTimeDetails } from '@src/types/onyx/Transaction' ;
2426import type Transaction from '@src/types/onyx/Transaction' ;
2527
2628type ReservationViewProps = {
2729 reservation : Reservation ;
2830 transactionID : string ;
2931 tripRoomReportID : string ;
30- reservationIndex : number ;
32+ sequenceIndex : number ;
3133} ;
3234
33- function ReservationView ( { reservation, transactionID, tripRoomReportID, reservationIndex } : ReservationViewProps ) {
35+ function ReservationView ( { reservation, transactionID, tripRoomReportID, sequenceIndex } : ReservationViewProps ) {
3436 const theme = useTheme ( ) ;
3537 const styles = useThemeStyles ( ) ;
3638 const StyleUtils = useStyleUtils ( ) ;
@@ -139,14 +141,18 @@ function ReservationView({reservation, transactionID, tripRoomReportID, reservat
139141 iconWidth = { 20 }
140142 iconStyles = { [ StyleUtils . getTripReservationIconContainer ( false ) , styles . mr3 ] }
141143 secondaryIconFill = { theme . icon }
142- onPress = { ( ) => Navigation . navigate ( ROUTES . TRAVEL_TRIP_DETAILS . getRoute ( tripRoomReportID , transactionID , reservationIndex , Navigation . getReportRHPActiveRoute ( ) ) ) }
144+ onPress = { ( ) =>
145+ Navigation . navigate (
146+ ROUTES . TRAVEL_TRIP_DETAILS . getRoute ( tripRoomReportID , transactionID , String ( reservation . reservationID ) , sequenceIndex , Navigation . getReportRHPActiveRoute ( ) ) ,
147+ )
148+ }
143149 />
144150 ) ;
145151}
146152
147153type TripDetailsViewProps = {
148154 /** The active tripRoomReportID, used for Onyx subscription */
149- tripRoomReportID : string ;
155+ tripRoomReport : OnyxEntry < Report > ;
150156
151157 /** Whether we should display the horizontal rule below the component */
152158 shouldShowHorizontalRule : boolean ;
@@ -155,11 +161,15 @@ type TripDetailsViewProps = {
155161 tripTransactions : Transaction [ ] ;
156162} ;
157163
158- function TripDetailsView ( { tripRoomReportID , shouldShowHorizontalRule, tripTransactions} : TripDetailsViewProps ) {
164+ function TripDetailsView ( { tripRoomReport , shouldShowHorizontalRule, tripTransactions} : TripDetailsViewProps ) {
159165 const styles = useThemeStyles ( ) ;
160166 const { translate} = useLocalize ( ) ;
161167
162- const reservationsData : ReservationData [ ] = getReservationsFromTripTransactions ( tripTransactions ) ;
168+ if ( ! tripRoomReport ) {
169+ return null ;
170+ }
171+
172+ const reservationsData : ReservationData [ ] = getReservationsFromTripReport ( tripRoomReport , tripTransactions ) ;
163173
164174 return (
165175 < View >
@@ -174,14 +184,14 @@ function TripDetailsView({tripRoomReportID, shouldShowHorizontalRule, tripTransa
174184 </ View >
175185 </ View >
176186 < >
177- { reservationsData . map ( ( { reservation, transactionID, reservationIndex } ) => {
187+ { reservationsData . map ( ( { reservation, transactionID, sequenceIndex } ) => {
178188 return (
179189 < OfflineWithFeedback >
180190 < ReservationView
181191 reservation = { reservation }
182192 transactionID = { transactionID }
183- tripRoomReportID = { tripRoomReportID }
184- reservationIndex = { reservationIndex }
193+ tripRoomReportID = { tripRoomReport . reportID }
194+ sequenceIndex = { sequenceIndex }
185195 />
186196 </ OfflineWithFeedback >
187197 ) ;
0 commit comments