From f9e9afd0581c36b7e307b5d14473e941b694cbe0 Mon Sep 17 00:00:00 2001 From: Rutika Pawar Date: Mon, 4 Nov 2024 18:14:38 +0530 Subject: [PATCH 1/5] add whispers for track expenses --- src/pages/ReportDetailsPage.tsx | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index 9ec3691f49a8..ef81b7dc7612 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -370,6 +370,46 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { }, }); } + + const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(requestParentReportAction) + ? ReportActionsUtils.getOriginalMessage(requestParentReportAction)?.IOUTransactionID ?? '' + : ''; + const whisperAction = ReportActionsUtils.getTrackExpenseActionableWhisper(iouTransactionID, moneyRequestReport?.reportID ?? '0'); + const actionableWhisperReportActionID = whisperAction?.reportActionID ?? '0'; + + if (isTrackExpenseReport) { + const actionReportID = ReportUtils.getOriginalReportID(report.reportID, parentReportAction) ?? '0'; + items.push({ + key: CONST.REPORT_DETAILS_MENU_ITEM.SETTINGS, + translationKey: 'actionableMentionTrackExpense.submit', + icon: Expensicons.Send, + isAnonymousAction: false, + shouldShowRightIcon: true, + action: () => { + ReportUtils.createDraftTransactionAndNavigateToParticipantSelector(iouTransactionID, actionReportID, CONST.IOU.ACTION.SUBMIT, actionableWhisperReportActionID); + }, + }); + items.push({ + key: CONST.REPORT_DETAILS_MENU_ITEM.SETTINGS, + translationKey: 'actionableMentionTrackExpense.categorize', + icon: Expensicons.Folder, + isAnonymousAction: false, + shouldShowRightIcon: true, + action: () => { + ReportUtils.createDraftTransactionAndNavigateToParticipantSelector(iouTransactionID, actionReportID, CONST.IOU.ACTION.CATEGORIZE, actionableWhisperReportActionID); + }, + }); + items.push({ + key: CONST.REPORT_DETAILS_MENU_ITEM.SETTINGS, + translationKey: 'actionableMentionTrackExpense.share', + icon: Expensicons.UserPlus, + isAnonymousAction: false, + shouldShowRightIcon: true, + action: () => { + ReportUtils.createDraftTransactionAndNavigateToParticipantSelector(iouTransactionID, actionReportID, CONST.IOU.ACTION.SHARE, actionableWhisperReportActionID); + }, + }); + } // Prevent displaying private notes option for threads and task reports if (!isChatThread && !isMoneyRequestReport && !isInvoiceReport && !isTaskReport) { From 609b7046249885f5d8f4a23a483270e61e212597 Mon Sep 17 00:00:00 2001 From: Rutika Pawar Date: Mon, 4 Nov 2024 18:27:44 +0530 Subject: [PATCH 2/5] fix lint --- src/pages/ReportDetailsPage.tsx | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index ef81b7dc7612..acc4b5699f8a 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -298,6 +298,12 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { const shouldShowCancelPaymentButton = caseID === CASES.MONEY_REPORT && isPayer && isSettled && ReportUtils.isExpenseReport(moneyRequestReport); const [chatReport] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT}${moneyRequestReport?.chatReportID ?? '-1'}`); + const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(requestParentReportAction) + ? ReportActionsUtils.getOriginalMessage(requestParentReportAction)?.IOUTransactionID ?? '' + : ''; + const whisperAction = ReportActionsUtils.getTrackExpenseActionableWhisper(iouTransactionID, moneyRequestReport?.reportID ?? '0'); + const actionableWhisperReportActionID = whisperAction?.reportActionID ?? '0'; + const cancelPayment = useCallback(() => { if (!chatReport) { return; @@ -370,12 +376,6 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { }, }); } - - const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(requestParentReportAction) - ? ReportActionsUtils.getOriginalMessage(requestParentReportAction)?.IOUTransactionID ?? '' - : ''; - const whisperAction = ReportActionsUtils.getTrackExpenseActionableWhisper(iouTransactionID, moneyRequestReport?.reportID ?? '0'); - const actionableWhisperReportActionID = whisperAction?.reportActionID ?? '0'; if (isTrackExpenseReport) { const actionReportID = ReportUtils.getOriginalReportID(report.reportID, parentReportAction) ?? '0'; @@ -557,6 +557,7 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { isExpenseReport, backTo, canActionTask, + isTrackExpenseReport, ]); const displayNamesWithTooltips = useMemo(() => { @@ -630,10 +631,6 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { ); }, [report, icons, isMoneyRequestReport, isInvoiceReport, isGroupChat, isThread, styles]); - const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(requestParentReportAction) - ? ReportActionsUtils.getOriginalMessage(requestParentReportAction)?.IOUTransactionID ?? '' - : ''; - const canHoldUnholdReportAction = ReportUtils.canHoldUnholdReportAction(moneyRequestAction); const shouldShowHoldAction = caseID !== CASES.DEFAULT && From d002395f66176321d0ef484fe8ce3e16e9a62b07 Mon Sep 17 00:00:00 2001 From: Rutika Pawar Date: Mon, 4 Nov 2024 18:34:57 +0530 Subject: [PATCH 3/5] add missing dependency --- src/pages/ReportDetailsPage.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index acc4b5699f8a..4baf3d4c5c65 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -558,6 +558,9 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { backTo, canActionTask, isTrackExpenseReport, + actionableWhisperReportActionID, + iouTransactionID, + parentReportAction, ]); const displayNamesWithTooltips = useMemo(() => { From 969090a64953bb79f42ad55365a77e65fed40a24 Mon Sep 17 00:00:00 2001 From: Rutika Pawar Date: Wed, 6 Nov 2024 01:40:53 +0530 Subject: [PATCH 4/5] rearrange variables --- src/pages/ReportDetailsPage.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index 4baf3d4c5c65..73a51d92fe95 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -301,8 +301,6 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { const iouTransactionID = ReportActionsUtils.isMoneyRequestAction(requestParentReportAction) ? ReportActionsUtils.getOriginalMessage(requestParentReportAction)?.IOUTransactionID ?? '' : ''; - const whisperAction = ReportActionsUtils.getTrackExpenseActionableWhisper(iouTransactionID, moneyRequestReport?.reportID ?? '0'); - const actionableWhisperReportActionID = whisperAction?.reportActionID ?? '0'; const cancelPayment = useCallback(() => { if (!chatReport) { @@ -379,6 +377,8 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { if (isTrackExpenseReport) { const actionReportID = ReportUtils.getOriginalReportID(report.reportID, parentReportAction) ?? '0'; + const whisperAction = ReportActionsUtils.getTrackExpenseActionableWhisper(iouTransactionID, moneyRequestReport?.reportID ?? '0'); + const actionableWhisperReportActionID = whisperAction?.reportActionID ?? '0'; items.push({ key: CONST.REPORT_DETAILS_MENU_ITEM.SETTINGS, translationKey: 'actionableMentionTrackExpense.submit', From c12db433953046751b9f3e5465a048bd8895996c Mon Sep 17 00:00:00 2001 From: Rutika Pawar Date: Wed, 6 Nov 2024 01:53:28 +0530 Subject: [PATCH 5/5] fix dependency error --- src/pages/ReportDetailsPage.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/ReportDetailsPage.tsx b/src/pages/ReportDetailsPage.tsx index 73a51d92fe95..9e438f0549e2 100644 --- a/src/pages/ReportDetailsPage.tsx +++ b/src/pages/ReportDetailsPage.tsx @@ -558,9 +558,9 @@ function ReportDetailsPage({policies, report, route}: ReportDetailsPageProps) { backTo, canActionTask, isTrackExpenseReport, - actionableWhisperReportActionID, iouTransactionID, parentReportAction, + moneyRequestReport?.reportID, ]); const displayNamesWithTooltips = useMemo(() => {