From 850719c6df58067791b5158edf38a8adbd3b6424 Mon Sep 17 00:00:00 2001 From: Jakub Korytko Date: Thu, 15 May 2025 13:41:28 +0200 Subject: [PATCH 1/3] Fix amount on buttons & display unhold button for admin --- src/components/MoneyReportHeader.tsx | 17 ++++++++--------- src/libs/MoneyRequestReportUtils.ts | 19 ++++--------------- src/libs/ReportPrimaryActionUtils.ts | 5 ++++- 3 files changed, 16 insertions(+), 25 deletions(-) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index f232dfc542dc8..c3d6669cec274 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -16,8 +16,7 @@ import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import {turnOffMobileSelectionMode} from '@libs/actions/MobileSelectionMode'; import {downloadReportPDF, exportReportToCSV, exportReportToPDF, exportToIntegration, markAsManuallyExported, openUnreportedExpense} from '@libs/actions/Report'; -import {convertToDisplayString} from '@libs/CurrencyUtils'; -import {getThreadReportIDsForTransactions} from '@libs/MoneyRequestReportUtils'; +import {getThreadReportIDsForTransactions, getTotalAmountForIOUReportPreviewButton} from '@libs/MoneyRequestReportUtils'; import Navigation from '@libs/Navigation/Navigation'; import {buildOptimisticNextStepForPreventSelfApprovalsEnabled} from '@libs/NextStepUtils'; import {getConnectedIntegration} from '@libs/PolicyUtils'; @@ -30,7 +29,6 @@ import { getBankAccountRoute, getIntegrationIcon, getIntegrationNameFromExportMessage as getIntegrationNameFromExportMessageUtils, - getMoneyRequestSpendBreakdown, getNonHeldAndFullAmount, getTransactionsWithReceipts, hasHeldExpenses as hasHeldExpensesReportUtils, @@ -176,7 +174,6 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea const theme = useTheme(); const {translate} = useLocalize(); const {isOffline} = useNetwork(); - const {reimbursableSpend} = getMoneyRequestSpendBreakdown(moneyRequestReport); const isOnHold = isOnHoldTransactionUtils(transaction); const [isHoldMenuVisible, setIsHoldMenuVisible] = useState(false); @@ -268,10 +265,8 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea const shouldShowNextStep = isFromPaidPolicy && !!optimisticNextStep?.message?.length && !shouldShowStatusBar; const bankAccountRoute = getBankAccountRoute(chatReport); - const formattedAmount = convertToDisplayString(reimbursableSpend, moneyRequestReport?.currency); const {nonHeldAmount, fullAmount, hasValidNonHeldAmount} = getNonHeldAndFullAmount(moneyRequestReport, shouldShowPayButton); const isAnyTransactionOnHold = hasHeldExpensesReportUtils(moneyRequestReport?.reportID); - const displayedAmount = isAnyTransactionOnHold && canAllowSettlement && hasValidNonHeldAmount ? nonHeldAmount : formattedAmount; const {isDelegateAccessRestricted} = useDelegateUserDetails(); const [isNoDelegateAccessMenuVisible, setIsNoDelegateAccessMenuVisible] = useState(false); const [isLoadingReportData] = useOnyx(ONYXKEYS.IS_LOADING_REPORT_DATA, {canBeMissing: true}); @@ -443,6 +438,10 @@ function MoneyReportHeader({policy, report: moneyRequestReport, transactionThrea [moneyRequestReport?.reportID, translate], ); + const getAmount = (actionType: ValueOf) => ({ + formattedAmount: getTotalAmountForIOUReportPreviewButton(moneyRequestReport, policy, actionType), + }); + const primaryActionsImplementation = { [CONST.REPORT.PRIMARY_ACTIONS.SUBMIT]: (