Skip to content
11 changes: 11 additions & 0 deletions src/libs/ReportUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1700,6 +1700,16 @@ function isOneTransactionThread(reportID: string, parentReportID: string, thread
return reportID === transactionThreadReportID && !ReportActionsUtils.isSentMoneyReportAction(threadParentReportAction);
}

/**
* Get displayed report ID, it will be parentReportID if the report is one transaction thread
*/
function getDisplayedReportID(reportID: string): string {
const report = getReport(reportID);
const parentReportID = report?.parentReportID ?? '';
const parentReportAction = ReportActionsUtils.getReportAction(parentReportID, report?.parentReportActionID ?? '');
return isOneTransactionThread(reportID, parentReportID, parentReportAction) ? parentReportID : reportID;
}

/**
* Should return true only for personal 1:1 report
*
Expand Down Expand Up @@ -8555,6 +8565,7 @@ export {
getTaskAssigneeChatOnyxData,
getTransactionDetails,
getTransactionReportName,
getDisplayedReportID,
getTransactionsWithReceipts,
getUserDetailTooltipText,
getWhisperDisplayNames,
Expand Down
6 changes: 6 additions & 0 deletions src/libs/actions/IOU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8126,6 +8126,9 @@ function putOnHold(transactionID: string, comment: string, reportID: string, sea
},
{optimisticData, successData, failureData},
);

const currentReportID = ReportUtils.getDisplayedReportID(reportID);
Report.notifyNewAction(currentReportID, userAccountID);
}

/**
Expand Down Expand Up @@ -8225,6 +8228,9 @@ function unholdRequest(transactionID: string, reportID: string, searchHash?: num
},
{optimisticData, successData, failureData},
);

const currentReportID = ReportUtils.getDisplayedReportID(reportID);
Report.notifyNewAction(currentReportID, userAccountID);
}
// eslint-disable-next-line rulesdir/no-negated-variables
function navigateToStartStepIfScanFileCannotBeRead(
Expand Down