Skip to content

Commit bd83ec9

Browse files
authored
Merge pull request Expensify#72983 from paulnjs/paulnjs-fix/72403
Recipient can add receipt to submitter's expense by dropping receipt
2 parents 8ebf129 + b4683ba commit bd83ec9

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

src/pages/home/report/ReportActionCompose/ReportActionCompose.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ import {canUseTouchScreen} from '@libs/DeviceCapabilities';
3636
import DomUtils from '@libs/DomUtils';
3737
import getNonEmptyStringOnyxID from '@libs/getNonEmptyStringOnyxID';
3838
import Performance from '@libs/Performance';
39-
import {getLinkedTransactionID, isMoneyRequestAction} from '@libs/ReportActionsUtils';
39+
import {getLinkedTransactionID, getReportAction, isMoneyRequestAction} from '@libs/ReportActionsUtils';
4040
import {
41+
canEditFieldOfMoneyRequest,
4142
canShowReportRecipientLocalTime,
43+
canUserPerformWriteAction as canUserPerformWriteActionReportUtils,
4244
chatIncludesChronos,
4345
chatIncludesConcierge,
4446
getParentReport,
@@ -51,7 +53,7 @@ import {
5153
isSettled,
5254
temporary_getMoneyRequestOptions,
5355
} from '@libs/ReportUtils';
54-
import {getTransactionID, hasReceipt as hasReceiptTransactionUtils, isDistanceRequest, isManualDistanceRequest} from '@libs/TransactionUtils';
56+
import {getTransactionID, hasReceipt as hasReceiptTransactionUtils} from '@libs/TransactionUtils';
5557
import willBlurTextInputOnTapOutsideFunc from '@libs/willBlurTextInputOnTapOutside';
5658
import AgentZeroProcessingRequestIndicator from '@pages/home/report/AgentZeroProcessingRequestIndicator';
5759
import ParticipantLocalTime from '@pages/home/report/ParticipantLocalTime';
@@ -214,7 +216,10 @@ function ReportActionCompose({
214216
const [transaction] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION}${getNonEmptyStringOnyxID(transactionID)}`, {canBeMissing: true});
215217

216218
const isSingleTransactionView = useMemo(() => !!transaction && !!reportTransactions && reportTransactions.length === 1, [transaction, reportTransactions]);
217-
const shouldAddOrReplaceReceipt = (isTransactionThreadView || isSingleTransactionView) && (isManualDistanceRequest(transaction) || !isDistanceRequest(transaction));
219+
const parentReportAction = isSingleTransactionView ? iouAction : getReportAction(report?.parentReportID, report?.parentReportActionID);
220+
const canUserPerformWriteAction = !!canUserPerformWriteActionReportUtils(report, isReportArchived);
221+
const canEditReceipt = canUserPerformWriteAction && canEditFieldOfMoneyRequest(parentReportAction, CONST.EDIT_REQUEST_FIELD.RECEIPT) && !transaction?.receipt?.isTestDriveReceipt;
222+
const shouldAddOrReplaceReceipt = (isTransactionThreadView || isSingleTransactionView) && canEditReceipt;
218223

219224
const hasReceipt = useMemo(() => hasReceiptTransactionUtils(transaction), [transaction]);
220225

0 commit comments

Comments
 (0)