Skip to content

Commit 9bed510

Browse files
committed
Add replaceDefaultDraftTransaction function
1 parent 2071262 commit 9bed510

3 files changed

Lines changed: 26 additions & 43 deletions

File tree

src/libs/actions/TransactionEdit.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import {format} from 'date-fns';
22
import Onyx from 'react-native-onyx';
3-
import type {Connection, OnyxEntry, OnyxUpdate} from 'react-native-onyx';
3+
import type {Connection, OnyxEntry} from 'react-native-onyx';
44
import {formatCurrentUserToAttendee} from '@libs/IOUUtils';
55
import CONST from '@src/CONST';
66
import ONYXKEYS from '@src/ONYXKEYS';
@@ -112,8 +112,26 @@ function removeDraftTransactions(shouldExcludeInitialTransaction = false) {
112112
return Onyx.multiSet(draftTransactionsSet);
113113
}
114114

115-
function updateDraftTransactions(transactionsUpdates: OnyxUpdate[]) {
116-
Onyx.update(transactionsUpdates);
115+
function replaceDefaultDraftTransaction(transaction: OnyxEntry<Transaction>) {
116+
if (!transaction) {
117+
return;
118+
}
119+
120+
Onyx.update([
121+
{
122+
onyxMethod: Onyx.METHOD.SET,
123+
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${CONST.IOU.OPTIMISTIC_TRANSACTION_ID}`,
124+
value: {
125+
...transaction,
126+
transactionID: CONST.IOU.OPTIMISTIC_TRANSACTION_ID,
127+
},
128+
},
129+
{
130+
onyxMethod: Onyx.METHOD.MERGE,
131+
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transaction.transactionID}`,
132+
value: null,
133+
},
134+
]);
117135
}
118136

119137
function removeTransactionReceipt(transactionID: string | undefined) {
@@ -157,6 +175,6 @@ export {
157175
removeTransactionReceipt,
158176
removeDraftTransactions,
159177
removeDraftSplitTransaction,
160-
updateDraftTransactions,
178+
replaceDefaultDraftTransaction,
161179
buildOptimisticTransactionAndCreateDraft,
162180
};

src/pages/iou/request/step/IOURequestStepConfirmation.tsx

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';
22
import {View} from 'react-native';
3-
import Onyx from 'react-native-onyx';
43
import ConfirmModal from '@components/ConfirmModal';
54
import DragAndDropConsumer from '@components/DragAndDrop/Consumer';
65
import DragAndDropProvider from '@components/DragAndDrop/Provider';
@@ -60,7 +59,7 @@ import {
6059
updateLastLocationPermissionPrompt,
6160
} from '@userActions/IOU';
6261
import {openDraftWorkspaceRequest} from '@userActions/Policy/Policy';
63-
import {removeDraftTransaction, removeDraftTransactions, updateDraftTransactions} from '@userActions/TransactionEdit';
62+
import {removeDraftTransaction, removeDraftTransactions, replaceDefaultDraftTransaction} from '@userActions/TransactionEdit';
6463
import CONST from '@src/CONST';
6564
import ONYXKEYS from '@src/ONYXKEYS';
6665
import ROUTES from '@src/ROUTES';
@@ -990,23 +989,7 @@ function IOURequestStepConfirmation({
990989
const removeCurrentTransaction = () => {
991990
if (currentTransactionID === CONST.IOU.OPTIMISTIC_TRANSACTION_ID) {
992991
const nextTransaction = transactions.at(currentTransactionIndex + 1);
993-
if (nextTransaction) {
994-
updateDraftTransactions([
995-
{
996-
onyxMethod: Onyx.METHOD.SET,
997-
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${CONST.IOU.OPTIMISTIC_TRANSACTION_ID}`,
998-
value: {
999-
...nextTransaction,
1000-
transactionID: CONST.IOU.OPTIMISTIC_TRANSACTION_ID,
1001-
},
1002-
},
1003-
{
1004-
onyxMethod: Onyx.METHOD.MERGE,
1005-
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${nextTransaction.transactionID}`,
1006-
value: null,
1007-
},
1008-
]);
1009-
}
992+
replaceDefaultDraftTransaction(nextTransaction);
1010993
setRemoveConfirmModalVisible(false);
1011994
return;
1012995
}

src/pages/iou/request/step/IOURequestStepScan/ReceiptViewModal/index.tsx

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, {useCallback, useEffect, useState} from 'react';
22
import {InteractionManager} from 'react-native';
3-
import Onyx from 'react-native-onyx';
43
import AttachmentCarouselView from '@components/Attachments/AttachmentCarousel/AttachmentCarouselView';
54
import useCarouselArrows from '@components/Attachments/AttachmentCarousel/useCarouselArrows';
65
import useAttachmentErrors from '@components/Attachments/AttachmentView/useAttachmentErrors';
@@ -15,7 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles';
1514
import Navigation from '@libs/Navigation/Navigation';
1615
import {getTransactionOrDraftTransaction} from '@libs/TransactionUtils';
1716
import type {ReceiptFile} from '@pages/iou/request/step/IOURequestStepScan/types';
18-
import {removeDraftTransaction, removeTransactionReceipt, updateDraftTransactions} from '@userActions/TransactionEdit';
17+
import {removeDraftTransaction, removeTransactionReceipt, replaceDefaultDraftTransaction} from '@userActions/TransactionEdit';
1918
import CONST from '@src/CONST';
2019
import ONYXKEYS from '@src/ONYXKEYS';
2120
import type {Route} from '@src/ROUTES';
@@ -77,24 +76,7 @@ function ReceiptViewModal({route}: ReceiptViewModalProps) {
7776

7877
const secondTransactionID = receipts.at(1)?.transactionID;
7978
const secondTransaction = secondTransactionID ? getTransactionOrDraftTransaction(secondTransactionID) : undefined;
80-
81-
if (secondTransaction) {
82-
updateDraftTransactions([
83-
{
84-
onyxMethod: Onyx.METHOD.SET,
85-
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${CONST.IOU.OPTIMISTIC_TRANSACTION_ID}`,
86-
value: {
87-
...secondTransaction,
88-
transactionID: CONST.IOU.OPTIMISTIC_TRANSACTION_ID,
89-
},
90-
},
91-
{
92-
onyxMethod: Onyx.METHOD.MERGE,
93-
key: `${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${secondTransactionID}`,
94-
value: null,
95-
},
96-
]);
97-
}
79+
replaceDefaultDraftTransaction(secondTransaction);
9880
return;
9981
}
10082
removeDraftTransaction(currentReceipt.transactionID);

0 commit comments

Comments
 (0)