From 0750cc58b971c1512561dc3fd4dfe5b007418619 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 20:21:07 +0530 Subject: [PATCH 1/6] Refine display merchant logic, Fixes #90575, #90577 --- .../MoneyRequestConfirmationList/sections/MerchantField.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/MoneyRequestConfirmationList/sections/MerchantField.tsx b/src/components/MoneyRequestConfirmationList/sections/MerchantField.tsx index 928bf9bb3b73..a09e33d37bf3 100644 --- a/src/components/MoneyRequestConfirmationList/sections/MerchantField.tsx +++ b/src/components/MoneyRequestConfirmationList/sections/MerchantField.tsx @@ -9,7 +9,7 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {clearMoneyRequestMerchant, setMoneyRequestMerchant} from '@libs/actions/IOU'; import Navigation from '@libs/Navigation/Navigation'; import {getMerchant, hasReceipt} from '@libs/TransactionUtils'; -import {isValidInputLength} from '@libs/ValidationUtils'; +import {isInvalidMerchantValue, isValidInputLength} from '@libs/ValidationUtils'; import {setDraftSplitTransaction} from '@userActions/IOU/Split'; import CONST from '@src/CONST'; import type {IOUAction, IOUType} from '@src/CONST'; @@ -54,7 +54,7 @@ function MerchantField({ const [splitDraftTransaction] = useOnyx(`${ONYXKEYS.COLLECTION.SPLIT_TRANSACTION_DRAFT}${transactionID}`); const merchantValue = getMerchant(transaction); - const displayMerchantValue = !transaction?.isMerchantSet ? '' : merchantValue; + const displayMerchantValue = isInvalidMerchantValue(merchantValue) ? '' : merchantValue; const isMerchantEmpty = !displayMerchantValue; // Determine if the merchant error should be displayed From e4ada4773c61ce038d1fe9f4ced585cfbae76ed8 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 20:27:32 +0530 Subject: [PATCH 2/6] Pass the missing isAmountSet and isMerchantSet fileds, Fixes #90649 --- src/libs/ReportUtils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 093c5ae605bd..c424081db36d 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -302,6 +302,7 @@ import addTrailingForwardSlash from './UrlUtils'; import type {AvatarSource} from './UserAvatarUtils'; import {getDefaultAvatarURL} from './UserAvatarUtils'; import {generateAccountID} from './UserUtils'; +import {isInvalidMerchantValue} from './ValidationUtils'; import ViolationsUtils from './Violations/ViolationsUtils'; type AvatarRange = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18; @@ -11326,6 +11327,7 @@ function createDraftTransactionAndNavigateToParticipantSelector({ .find((action) => isMoneyRequestAction(action) && getOriginalMessage(action)?.IOUTransactionID === transactionID); const {created, amount, currency, merchant, mccGroup} = getTransactionDetails(transaction) ?? {}; + const isMerchantValid = !isInvalidMerchantValue(merchant); const baseComment = getTransactionCommentObject(transaction); // Use modifiedAttendees if present (for edited transactions), otherwise use the attendees from comment const comment = { @@ -11345,10 +11347,12 @@ function createDraftTransactionAndNavigateToParticipantSelector({ modifiedAmount: undefined, modifiedCurrency: undefined, amount, + isAmountSet: true, currency, comment, merchant, modifiedMerchant: '', + isMerchantSet: isMerchantValid ? false : true, modifiedAttendees: undefined, mccGroup, participants: [], From dc232435c6806dbed1183790730f5a4ab3c596b6 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 20:29:33 +0530 Subject: [PATCH 3/6] Show invalid amount for iou type pay when amount is 0, Fixes #90654 --- .../hooks/useConfirmationValidation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/MoneyRequestConfirmationList/hooks/useConfirmationValidation.ts b/src/components/MoneyRequestConfirmationList/hooks/useConfirmationValidation.ts index fe88d1b2c166..721fb0dc8596 100644 --- a/src/components/MoneyRequestConfirmationList/hooks/useConfirmationValidation.ts +++ b/src/components/MoneyRequestConfirmationList/hooks/useConfirmationValidation.ts @@ -160,7 +160,7 @@ function useConfirmationValidation({ const isP2P = !!(firstParticipant?.accountID && !firstParticipant?.isPolicyExpenseChat); // P2P manual submit: $0 is invalid unless scan/time/distance (same guard as legacy inline confirm). - if (iouType !== CONST.IOU.TYPE.PAY && !isScanRequestUtil(transaction) && !isTimeRequest && !isDistanceRequest && iouAmount === 0 && isP2P) { + if (!isScanRequestUtil(transaction) && !isTimeRequest && !isDistanceRequest && iouAmount === 0 && isP2P) { return {errorKey: 'common.error.invalidAmount'}; } if (isNewManualExpenseFlowEnabled && !transaction?.isAmountSet) { From fab5127399c5f7dbb9f9403404bf11ced4e19223 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 20:45:35 +0530 Subject: [PATCH 4/6] Pass the missing isAmountSet and isMerchantSet fileds, Fixes #90649 --- src/libs/ReportUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index c424081db36d..b50b9477fa46 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -11352,7 +11352,7 @@ function createDraftTransactionAndNavigateToParticipantSelector({ comment, merchant, modifiedMerchant: '', - isMerchantSet: isMerchantValid ? false : true, + isMerchantSet: isMerchantValid ? true : false, modifiedAttendees: undefined, mccGroup, participants: [], From 1aa71f35752d8b54b32616078971f0e7d2550622 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 21:16:14 +0530 Subject: [PATCH 5/6] lint --- src/libs/ReportUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index b50b9477fa46..45fb0314b84b 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -11352,7 +11352,7 @@ function createDraftTransactionAndNavigateToParticipantSelector({ comment, merchant, modifiedMerchant: '', - isMerchantSet: isMerchantValid ? true : false, + isMerchantSet: isMerchantValid, modifiedAttendees: undefined, mccGroup, participants: [], From 2ce7b7e22e164f0696aac8a3e2f129845abf59e4 Mon Sep 17 00:00:00 2001 From: Chavda Sachin Date: Thu, 14 May 2026 21:17:02 +0530 Subject: [PATCH 6/6] lint --- src/libs/ReportUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 45fb0314b84b..1867eb8ce144 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -11352,7 +11352,7 @@ function createDraftTransactionAndNavigateToParticipantSelector({ comment, merchant, modifiedMerchant: '', - isMerchantSet: isMerchantValid, + isMerchantSet: !!isMerchantValid, modifiedAttendees: undefined, mccGroup, participants: [],