Skip to content

Commit d67409e

Browse files
authored
Merge pull request Expensify#90068 from Expensify/jules-fix90026OdometerReceipt
Fix: Odometer receipt disappears on confirm page after edit save
2 parents ef702c2 + d4d9da4 commit d67409e

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

src/hooks/useOdometerDraftHydrator.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {useEffect} from 'react';
22
import type {OnyxEntry} from 'react-native-onyx';
33
import type {IOURequestType} from '@userActions/IOU';
4-
import {hydrateOdometerDraftIntoTransaction} from '@userActions/OdometerTransactionUtils';
4+
import {hydrateOdometerDraftIntoTransaction, isOdometerDraftPendingHydration} from '@userActions/OdometerTransactionUtils';
55
import CONST from '@src/CONST';
66
import ONYXKEYS from '@src/ONYXKEYS';
77
import type {OdometerDraft, Transaction} from '@src/types/onyx';
@@ -39,6 +39,13 @@ function useOdometerDraftHydrator({
3939
if (lastHydratedDraft === odometerDraft) {
4040
return;
4141
}
42+
// Skip when the comment already reflects the draft. saveOdometerDraft writes from the
43+
// edit-from-confirmation flow otherwise mint fresh blob URLs via the serialize/deserialize
44+
// round-trip and revoke the URLs the confirm page is currently displaying.
45+
if (!isOdometerDraftPendingHydration(odometerDraft, transaction?.comment)) {
46+
lastHydratedDraft = odometerDraft;
47+
return;
48+
}
4249
hydrateOdometerDraftIntoTransaction(transaction?.transactionID ?? CONST.IOU.OPTIMISTIC_TRANSACTION_ID, odometerDraft, transaction?.comment);
4350
lastHydratedDraft = odometerDraft;
4451
// transaction.comment intentionally excluded — it changes after our own merge and would re-fire.

0 commit comments

Comments
 (0)