diff --git a/src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx b/src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx index 27d8211df95d..ea801f01e8bc 100644 --- a/src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx +++ b/src/components/MoneyRequestReportView/MoneyRequestReportTransactionList.tsx @@ -9,6 +9,7 @@ import Checkbox from '@components/Checkbox'; import * as Expensicons from '@components/Icon/Expensicons'; import MenuItem from '@components/MenuItem'; import Modal from '@components/Modal'; +import OfflineWithFeedback from '@components/OfflineWithFeedback'; import {usePersonalDetails, useSession} from '@components/OnyxListItemProvider'; import {useSearchContext} from '@components/Search/SearchContext'; import type {SearchColumnType, SortOrder} from '@components/Search/types'; @@ -16,6 +17,7 @@ import Text from '@components/Text'; import useCopySelectionHelper from '@hooks/useCopySelectionHelper'; import useLocalize from '@hooks/useLocalize'; import useMobileSelectionMode from '@hooks/useMobileSelectionMode'; +import useReportIsArchived from '@hooks/useReportIsArchived'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useStyleUtils from '@hooks/useStyleUtils'; import useThemeStyles from '@hooks/useThemeStyles'; @@ -27,7 +29,7 @@ import {getThreadReportIDsForTransactions} from '@libs/MoneyRequestReportUtils'; import {navigationRef} from '@libs/Navigation/Navigation'; import Parser from '@libs/Parser'; import {getIOUActionForTransactionID} from '@libs/ReportActionsUtils'; -import {canAddTransaction, getAddExpenseDropdownOptions, getMoneyRequestSpendBreakdown, isExpenseReport} from '@libs/ReportUtils'; +import {canAddTransaction, getAddExpenseDropdownOptions, getMoneyRequestSpendBreakdown, isCurrentUserSubmitter, isExpenseReport} from '@libs/ReportUtils'; import {compareValues, getColumnsToShow, isTransactionAmountTooLong, isTransactionTaxAmountTooLong} from '@libs/SearchUIUtils'; import {getAmount, getCategory, getCreated, getMerchant, getTag, getTransactionPendingAction, isTransactionPendingDelete} from '@libs/TransactionUtils'; import shouldShowTransactionYear from '@libs/TransactionUtils/shouldShowTransactionYear'; @@ -129,7 +131,8 @@ function MoneyRequestReportTransactionList({report, transactions, newTransaction const shouldShowBreakdown = !!nonReimbursableSpend && !!reimbursableSpend; const transactionsWithoutPendingDelete = useMemo(() => transactions.filter((t) => !isTransactionPendingDelete(t)), [transactions]); const session = useSession(); - + const isReportArchived = useReportIsArchived(report?.reportID); + const shouldShowAddExpenseButton = canAddTransaction(report, isReportArchived) && isCurrentUserSubmitter(report); const addExpenseDropdownOptions = useMemo(() => getAddExpenseDropdownOptions(report?.reportID, policy), [report?.reportID, policy]); const hasPendingAction = useMemo(() => { @@ -339,25 +342,41 @@ function MoneyRequestReportTransactionList({report, transactions, newTransaction ); })} - - {canAddTransaction(report) && ( - {}} - shouldAlwaysShowDropdownMenu - customText={translate('iou.addExpense')} - options={addExpenseDropdownOptions} - isSplitButton={false} - buttonSize={CONST.DROPDOWN_BUTTON_SIZE.SMALL} - success={false} - anchorAlignment={{ - horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT, - vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP, - }} - /> + + {shouldShowAddExpenseButton && ( + + {}} + shouldAlwaysShowDropdownMenu + customText={translate('iou.addExpense')} + options={addExpenseDropdownOptions} + isSplitButton={false} + buttonSize={CONST.DROPDOWN_BUTTON_SIZE.SMALL} + success={false} + anchorAlignment={{ + horizontal: CONST.MODAL.ANCHOR_ORIGIN_HORIZONTAL.LEFT, + vertical: CONST.MODAL.ANCHOR_ORIGIN_VERTICAL.TOP, + }} + /> + )} {shouldShowBreakdown && ( - + {[ {text: 'cardTransactions.outOfPocket', value: formattedOutOfPocketAmount}, {text: 'cardTransactions.companySpend', value: formattedCompanySpendAmount}, diff --git a/src/styles/utils/sizing.ts b/src/styles/utils/sizing.ts index dab8e474abb6..e84abadf1057 100644 --- a/src/styles/utils/sizing.ts +++ b/src/styles/utils/sizing.ts @@ -142,9 +142,15 @@ export default { mw100: { maxWidth: '100%', }, + + mwFitContent: { + maxWidth: 'fit-content', + }, + wAuto: { width: 'auto', }, + wFitContent: { width: 'fit-content', }, diff --git a/src/styles/utils/spacing.ts b/src/styles/utils/spacing.ts index b885d33910b8..74d5bfad50b3 100644 --- a/src/styles/utils/spacing.ts +++ b/src/styles/utils/spacing.ts @@ -783,6 +783,10 @@ export default { minHeight: 20, }, + minHeight7: { + minHeight: 28, + }, + minHeight22: { minHeight: 88, },