diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 5350d4c73d67f..5af340eddf02f 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -19,6 +19,7 @@ import { buildOptimisticDismissedViolationReportAction, buildOptimisticMovedTransactionAction, buildOptimisticSelfDMReport, + buildOptimisticUnHoldReportAction, buildOptimisticUnreportedTransactionAction, buildTransactionThread, findSelfDMReportID, @@ -776,6 +777,9 @@ function changeTransactionsReport( key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction.transactionID}`, value: { reportID, + comment: { + hold: null, + }, }, }); @@ -792,6 +796,9 @@ function changeTransactionsReport( key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transaction.transactionID}`, value: { reportID: transaction.reportID, + comment: { + hold: transaction.comment?.hold, + }, }, }); @@ -1111,6 +1118,33 @@ function changeTransactionsReport( } else { transactionIDToReportActionAndThreadData[transaction.transactionID] = baseTransactionData; } + + // Build unhold report action + if (isOnHold(transaction)) { + const unHoldAction = buildOptimisticUnHoldReportAction(); + optimisticData.push({ + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadReportID}`, + value: {[unHoldAction.reportActionID]: unHoldAction}, + }); + + successData.push({ + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadReportID}`, + value: {[unHoldAction.reportActionID]: {pendingAction: null}}, + }); + + failureData.push({ + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${transactionThreadReportID}`, + value: {[unHoldAction.reportActionID]: null}, + }); + + transactionIDToReportActionAndThreadData[transaction.transactionID] = { + ...transactionIDToReportActionAndThreadData[transaction.transactionID], + unholdReportActionID: unHoldAction.reportActionID, + }; + } }); if (!transactionsMoved) {