diff --git a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx index e78e83d707d3e..5d4a7ee869e89 100644 --- a/src/pages/iou/request/step/IOURequestStepConfirmation.tsx +++ b/src/pages/iou/request/step/IOURequestStepConfirmation.tsx @@ -512,6 +512,21 @@ function IOURequestStepConfirmation({ }); }, [requestType, iouType, initialTransactionID, reportID, action, report, transactions, participants]); + function getMoneyRequestContextForParticipant(participant: Participant | undefined, reportParam: Report | undefined) { + const isWorkspaceTarget = !!participant?.isPolicyExpenseChat; + return { + parentChatReport: isWorkspaceTarget ? reportParam : undefined, + policyParams: isWorkspaceTarget + ? { + policy, + policyTagList: policyTags, + policyCategories, + policyRecentlyUsedCategories, + } + : {}, + }; + } + const requestMoney = useCallback( (selectedParticipants: Participant[], gpsPoint?: GpsPoint) => { if (!transactions.length) { @@ -523,6 +538,8 @@ function IOURequestStepConfirmation({ return; } + const {parentChatReport, policyParams} = getMoneyRequestContextForParticipant(participant, report); + const optimisticChatReportID = generateReportID(); const optimisticCreatedReportActionID = rand64(); const optimisticReportPreviewActionID = rand64(); @@ -541,7 +558,7 @@ function IOURequestStepConfirmation({ } const {iouReport} = requestMoneyIOUActions({ - report, + report: parentChatReport, existingIOUReport, optimisticChatReportID, optimisticCreatedReportActionID, @@ -551,12 +568,7 @@ function IOURequestStepConfirmation({ payeeAccountID: currentUserPersonalDetails.accountID, participant, }, - policyParams: { - policy, - policyTagList: policyTags, - policyCategories, - policyRecentlyUsedCategories, - }, + policyParams, gpsPoint, action, transactionParams: { @@ -677,12 +689,13 @@ function IOURequestStepConfirmation({ if (!participant) { return; } + const {parentChatReport, policyParams} = getMoneyRequestContextForParticipant(participant, report); for (const [index, item] of transactions.entries()) { const isLinkedTrackedExpenseReportArchived = !!item.linkedTrackedExpenseReportID && archivedReportsIdSet.has(`${ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS}${item.linkedTrackedExpenseReportID}`); trackExpenseIOUActions({ - report, + report: parentChatReport, isDraftPolicy, action, participantParams: { @@ -690,11 +703,7 @@ function IOURequestStepConfirmation({ payeeAccountID: currentUserPersonalDetails.accountID, participant, }, - policyParams: { - policy, - policyCategories, - policyTagList: policyTags, - }, + policyParams, transactionParams: { amount: item.amount, distance: isManualDistanceRequest ? (item.comment?.customUnit?.quantity ?? undefined) : undefined, @@ -751,19 +760,22 @@ function IOURequestStepConfirmation({ if (!transaction) { return; } + + const participant = selectedParticipants.at(0); + if (!participant) { + return; + } + + const {parentChatReport, policyParams} = getMoneyRequestContextForParticipant(participant, report); + createDistanceRequestIOUActions({ - report, + report: parentChatReport, participants: selectedParticipants, currentUserLogin: currentUserPersonalDetails.login, currentUserAccountID: currentUserPersonalDetails.accountID, iouType, existingTransaction: transaction, - policyParams: { - policy, - policyCategories, - policyTagList: policyTags, - policyRecentlyUsedCategories, - }, + policyParams, transactionParams: { amount: transaction.amount, comment: trimmedComment,