From 0231a56f36e3ea16c657775ff678ae70c526827d Mon Sep 17 00:00:00 2001 From: Carlos Martins Date: Tue, 7 Jan 2025 11:52:59 -0700 Subject: [PATCH 01/21] dry code into canSubmitReport --- Mobile-Expensify | 2 +- src/components/MoneyReportHeader.tsx | 15 +++------------ src/components/ReportActionItem/ReportPreview.tsx | 10 +--------- src/libs/actions/IOU.ts | 4 +--- 4 files changed, 6 insertions(+), 25 deletions(-) diff --git a/Mobile-Expensify b/Mobile-Expensify index 1141a80beaf13..d98552a5c3f17 160000 --- a/Mobile-Expensify +++ b/Mobile-Expensify @@ -1 +1 @@ -Subproject commit 1141a80beaf1390b2634dba7b1c3e5fe5561a19f +Subproject commit d98552a5c3f17d2aa30611fa5f6dc47ed24963bb diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index 36310e4eb588c..a981380365397 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -8,7 +8,6 @@ import useNetwork from '@hooks/useNetwork'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; -import {getCurrentUserAccountID} from '@libs/actions/Report'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -108,7 +107,6 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea const allTransactions = useMemo(() => TransactionUtils.getAllReportTransactions(moneyRequestReport?.reportID, transactions), [moneyRequestReport?.reportID, transactions]); const canAllowSettlement = ReportUtils.hasUpdatedTotal(moneyRequestReport, policy); const policyType = policy?.type; - const isDraft = ReportUtils.isOpenExpenseReport(moneyRequestReport); const connectedIntegration = PolicyUtils.getConnectedIntegration(policy); const navigateBackToAfterDelete = useRef(); const hasHeldExpenses = ReportUtils.hasHeldExpenses(moneyRequestReport?.reportID); @@ -140,16 +138,9 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea const shouldDisableApproveButton = shouldShowApproveButton && !ReportUtils.isAllowedToApproveExpenseReport(moneyRequestReport); - const currentUserAccountID = getCurrentUserAccountID(); const isAdmin = policy?.role === CONST.POLICY.ROLE.ADMIN; - const shouldShowSubmitButton = - !!moneyRequestReport && - isDraft && - reimbursableSpend !== 0 && - !hasAllPendingRTERViolations && - !shouldShowBrokenConnectionViolation && - (moneyRequestReport?.ownerAccountID === currentUserAccountID || isAdmin || moneyRequestReport?.managerID === currentUserAccountID); + const shouldShowSubmitButton = IOU.canSubmitReport(moneyRequestReport, policy); const shouldShowExportIntegrationButton = !shouldShowPayButton && !shouldShowSubmitButton && connectedIntegration && isAdmin && ReportUtils.canBeExported(moneyRequestReport); @@ -391,7 +382,7 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea /> )} - {shouldShowSubmitButton && !shouldUseNarrowLayout && ( + {!!moneyRequestReport && shouldShowSubmitButton && !shouldUseNarrowLayout && (