From e87e740c294fd14ae44b443cbcb3e4686da7a4f8 Mon Sep 17 00:00:00 2001 From: Ishpaul Singh Date: Fri, 25 Oct 2024 02:15:54 +0530 Subject: [PATCH] pass correct custom rate id --- src/libs/DistanceRequestUtils.ts | 14 ++++++++++++-- .../iou/request/step/IOURequestStepDistance.tsx | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/libs/DistanceRequestUtils.ts b/src/libs/DistanceRequestUtils.ts index 286f952b3484..e7a9cd871a30 100644 --- a/src/libs/DistanceRequestUtils.ts +++ b/src/libs/DistanceRequestUtils.ts @@ -1,4 +1,4 @@ -import type {OnyxEntry} from 'react-native-onyx'; +import type {OnyxCollection, OnyxEntry} from 'react-native-onyx'; import Onyx from 'react-native-onyx'; import type {LocaleContextProps} from '@components/LocaleContextProvider'; import CONST from '@src/CONST'; @@ -6,6 +6,7 @@ import ONYXKEYS from '@src/ONYXKEYS'; import type {LastSelectedDistanceRates, OnyxInputOrEntry, Transaction} from '@src/types/onyx'; import type {Unit} from '@src/types/onyx/Policy'; import type Policy from '@src/types/onyx/Policy'; +import type Report from '@src/types/onyx/Report'; import {isEmptyObject} from '@src/types/utils/EmptyObject'; import * as CurrencyUtils from './CurrencyUtils'; import * as PolicyUtils from './PolicyUtils'; @@ -30,6 +31,13 @@ Onyx.connect({ }, }); +let allReportsDraft: OnyxCollection; +Onyx.connect({ + key: ONYXKEYS.COLLECTION.REPORT_DRAFT, + waitForCollectionCallback: true, + callback: (value) => (allReportsDraft = value), +}); + const METERS_TO_KM = 0.001; // 1 kilometer is 1000 meters const METERS_TO_MILES = 0.000621371; // There are approximately 0.000621371 miles in a meter @@ -279,7 +287,9 @@ function convertToDistanceInMeters(distance: number, unit: Unit): number { */ function getCustomUnitRateID(reportID: string, shouldUseDefault?: boolean) { const allReports = ReportConnection.getAllReports(); - const report = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportID}`]; + const reportReal = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${reportID}`]; + const reportDraft = allReportsDraft?.[`${ONYXKEYS.COLLECTION.REPORT_DRAFT}${reportID}`]; + const report = reportReal ?? reportDraft; const parentReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID}`]; const policy = PolicyUtils.getPolicy(report?.policyID ?? parentReport?.policyID ?? '-1'); let customUnitRateID: string = CONST.CUSTOM_UNITS.FAKE_P2P_ID; diff --git a/src/pages/iou/request/step/IOURequestStepDistance.tsx b/src/pages/iou/request/step/IOURequestStepDistance.tsx index 899f024de4be..bc6001e7dfa9 100644 --- a/src/pages/iou/request/step/IOURequestStepDistance.tsx +++ b/src/pages/iou/request/step/IOURequestStepDistance.tsx @@ -53,7 +53,8 @@ type IOURequestStepDistanceProps = WithCurrentUserPersonalDetailsProps & }; function IOURequestStepDistance({ - report, + report: reportReal, + reportDraft, route: { params: {action, iouType, reportID, transactionID, backTo}, }, @@ -63,6 +64,7 @@ function IOURequestStepDistance({ const styles = useThemeStyles(); const {isOffline} = useNetwork(); const {translate} = useLocalize(); + const report = reportReal ?? reportDraft; const [reportNameValuePairs] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${report?.reportID ?? -1}`); const [transactionBackup] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION_BACKUP}${transactionID}`); const policy = usePolicy(report?.policyID);