From 4dd2eb1bb034322ef7dd2de5323718a99ac553bf Mon Sep 17 00:00:00 2001 From: Pavlo Tsimura Date: Fri, 27 Oct 2023 10:53:30 +0200 Subject: [PATCH 1/2] Support distance request from expense reports --- src/libs/actions/IOU.js | 8 ++++++-- src/pages/iou/MoneyRequestSelectorPage.js | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libs/actions/IOU.js b/src/libs/actions/IOU.js index 714ea7b9aa9f..1f7ef922bd84 100644 --- a/src/libs/actions/IOU.js +++ b/src/libs/actions/IOU.js @@ -618,12 +618,16 @@ function getMoneyRequestInformation( * @param {Boolean} [billable] */ function createDistanceRequest(report, participant, comment, created, transactionID, category, tag, amount, currency, merchant, billable) { + // If the report is an iou or expense report, we should get the linked chat report to be passed to the getMoneyRequestInformation function + const isMoneyRequestReport = ReportUtils.isMoneyRequestReport(report); + const currentChatReport = isMoneyRequestReport ? ReportUtils.getReport(report.chatReportID) : report; + const optimisticReceipt = { source: ReceiptGeneric, state: CONST.IOU.RECEIPT_STATE.OPEN, }; const {iouReport, chatReport, transaction, iouAction, createdChatReportActionID, createdIOUReportActionID, reportPreviewAction, onyxData} = getMoneyRequestInformation( - report, + currentChatReport, participant, comment, amount, @@ -657,7 +661,7 @@ function createDistanceRequest(report, participant, comment, created, transactio }, onyxData, ); - Navigation.dismissModal(chatReport.reportID); + Navigation.dismissModal(isMoneyRequestReport ? report.reportID : chatReport.reportID); Report.notifyNewAction(chatReport.reportID, userAccountID); } diff --git a/src/pages/iou/MoneyRequestSelectorPage.js b/src/pages/iou/MoneyRequestSelectorPage.js index 979be64f68e9..55a17772684e 100644 --- a/src/pages/iou/MoneyRequestSelectorPage.js +++ b/src/pages/iou/MoneyRequestSelectorPage.js @@ -68,8 +68,9 @@ function MoneyRequestSelectorPage(props) { [CONST.IOU.TYPE.SPLIT]: translate('iou.splitBill'), }; const isFromGlobalCreate = !reportID; - const isExpenseRequest = ReportUtils.isPolicyExpenseChat(props.report); - const shouldDisplayDistanceRequest = isExpenseRequest || isFromGlobalCreate; + const isExpenseChat = ReportUtils.isPolicyExpenseChat(props.report) + const isExpenseReport = ReportUtils.isExpenseReport(props.report); + const shouldDisplayDistanceRequest = isExpenseChat || isExpenseReport || isFromGlobalCreate; const resetMoneyRequestInfo = () => { const moneyRequestID = `${iouType}${reportID}`; From 98327c22cff7bec2544d8a062a260588d1f8c617 Mon Sep 17 00:00:00 2001 From: Pavlo Tsimura Date: Sat, 4 Nov 2023 07:41:54 +0200 Subject: [PATCH 2/2] Lint --- src/pages/iou/MoneyRequestSelectorPage.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/iou/MoneyRequestSelectorPage.js b/src/pages/iou/MoneyRequestSelectorPage.js index 3b3d96557ad6..e6ea81fc896b 100644 --- a/src/pages/iou/MoneyRequestSelectorPage.js +++ b/src/pages/iou/MoneyRequestSelectorPage.js @@ -69,7 +69,7 @@ function MoneyRequestSelectorPage(props) { [CONST.IOU.TYPE.SPLIT]: translate('iou.splitBill'), }; const isFromGlobalCreate = !reportID; - const isExpenseChat = ReportUtils.isPolicyExpenseChat(props.report) + const isExpenseChat = ReportUtils.isPolicyExpenseChat(props.report); const isExpenseReport = ReportUtils.isExpenseReport(props.report); const shouldDisplayDistanceRequest = isExpenseChat || isExpenseReport || isFromGlobalCreate;