diff --git a/src/components/LHNOptionsList/OptionRowLHNData.tsx b/src/components/LHNOptionsList/OptionRowLHNData.tsx index 0db8e581e23e..121390d808b5 100644 --- a/src/components/LHNOptionsList/OptionRowLHNData.tsx +++ b/src/components/LHNOptionsList/OptionRowLHNData.tsx @@ -37,7 +37,7 @@ function OptionRowLHNData({ const optionItemRef = useRef(); - const hasViolations = canUseViolations && ReportUtils.doesTransactionThreadHaveViolations(fullReport, transactionViolations, parentReportAction ?? null); + const shouldDisplayViolations = canUseViolations && ReportUtils.shouldDisplayTransactionThreadViolations(fullReport, transactionViolations, parentReportAction ?? null); const optionItem = useMemo(() => { // Note: ideally we'd have this as a dependent selector in onyx! @@ -48,7 +48,7 @@ function OptionRowLHNData({ preferredLocale: preferredLocale ?? CONST.LOCALES.DEFAULT, policy, parentReportAction, - hasViolations: !!hasViolations, + hasViolations: !!shouldDisplayViolations, }); if (deepEqual(item, optionItemRef.current)) { return optionItemRef.current; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 14041fbe35ce..b7b9b6e0035c 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4246,6 +4246,21 @@ function doesTransactionThreadHaveViolations(report: OnyxEntry, transact return TransactionUtils.hasViolation(IOUTransactionID, transactionViolations); } +/** + * Checks if we should display violation - we display violations when the money request has violation and it is not settled + */ +function shouldDisplayTransactionThreadViolations( + report: OnyxEntry, + transactionViolations: OnyxCollection, + parentReportAction: OnyxEntry, +): boolean { + const {IOUReportID} = (parentReportAction?.originalMessage as IOUMessage) ?? {}; + if (isSettled(IOUReportID)) { + return false; + } + return doesTransactionThreadHaveViolations(report, transactionViolations, parentReportAction); +} + /** * Checks to see if a report contains a violation */ @@ -5622,6 +5637,7 @@ export { getRoom, canEditReportDescription, doesTransactionThreadHaveViolations, + shouldDisplayTransactionThreadViolations, hasViolations, navigateToPrivateNotes, canEditWriteCapability,