Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@ import {delegateEmailSelector, isUserValidatedSelector} from '@selectors/Account
import {hasSeenTourSelector} from '@selectors/Onboarding';
import truncate from 'lodash/truncate';
import React, {useContext, useEffect} from 'react';
import {InteractionManager, View} from 'react-native';
import {InteractionManager} from 'react-native';
import type {ValueOf} from 'type-fest';
import Button from '@components/Button';
import type {ButtonWithDropdownMenuRef} from '@components/ButtonWithDropdownMenu/types';
import {useDelegateNoAccessActions, useDelegateNoAccessState} from '@components/DelegateNoAccessModalProvider';
import {KYCWallContext} from '@components/KYCWall/KYCWallContext';
import MoneyReportHeaderKYCDropdown from '@components/MoneyReportHeaderKYCDropdown';
import {useMoneyReportHeaderModals} from '@components/MoneyReportHeaderModalsContext';
import NavigationDeferredMount from '@components/NavigationDeferredMount';
import {usePaymentAnimationsContext} from '@components/PaymentAnimationsContext';
import type {PopoverMenuItem} from '@components/PopoverMenu';
import {useSearchStateContext} from '@components/Search/SearchContext';
Expand All @@ -32,10 +30,7 @@ import usePaymentOptions from '@hooks/usePaymentOptions';
import usePermissions from '@hooks/usePermissions';
import usePolicy from '@hooks/usePolicy';
import useReportIsArchived from '@hooks/useReportIsArchived';
import useResponsiveLayout from '@hooks/useResponsiveLayout';
import useSearchShouldCalculateTotals from '@hooks/useSearchShouldCalculateTotals';
import useStyleUtils from '@hooks/useStyleUtils';
import useThemeStyles from '@hooks/useThemeStyles';
import useTransactionsAndViolationsForReport from '@hooks/useTransactionsAndViolationsForReport';
import {generateDefaultWorkspaceName} from '@libs/actions/Policy/Policy';
import {search} from '@libs/actions/Search';
Expand Down Expand Up @@ -399,40 +394,15 @@ function MoneyReportHeaderSecondaryActionsInner({reportID, primaryAction, isRepo
);
}

function MoneyReportHeaderSecondaryActionsPlaceholder({primaryAction}: {primaryAction: ValueOf<typeof CONST.REPORT.PRIMARY_ACTIONS> | ''}) {
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();
const {translate} = useLocalize();
const {shouldUseNarrowLayout, isMediumScreenWidth} = useResponsiveLayout();
const icons = useMemoizedLazyExpensifyIcons(['DownArrow']);
const shouldDisplayNarrowVersion = shouldUseNarrowLayout || isMediumScreenWidth;
const wrapperStyle = shouldDisplayNarrowVersion && !primaryAction ? styles.flex1 : undefined;
// Match the inner styles the real ButtonWithDropdownMenu applies when isSplitButton=false so text placement stays put on swap.
const innerStyles = [StyleUtils.getDropDownButtonHeight(CONST.DROPDOWN_BUTTON_SIZE.MEDIUM), styles.dropDownButtonCartIconView];
return (
<View style={wrapperStyle}>
<Button
text={translate('common.more')}
iconRight={icons.DownArrow}
shouldShowRightIcon
innerStyles={innerStyles}
onPress={() => {}}
/>
</View>
);
}

function MoneyReportHeaderSecondaryActions({reportID, primaryAction, isReportInSearch, backTo, dropdownMenuRef}: MoneyReportHeaderSecondaryActionsProps) {
return (
<NavigationDeferredMount placeholder={<MoneyReportHeaderSecondaryActionsPlaceholder primaryAction={primaryAction} />}>
<MoneyReportHeaderSecondaryActionsInner
reportID={reportID}
primaryAction={primaryAction}
isReportInSearch={isReportInSearch}
backTo={backTo}
dropdownMenuRef={dropdownMenuRef}
/>
</NavigationDeferredMount>
<MoneyReportHeaderSecondaryActionsInner
reportID={reportID}
primaryAction={primaryAction}
isReportInSearch={isReportInSearch}
backTo={backTo}
dropdownMenuRef={dropdownMenuRef}
/>
);
}

Expand Down
Loading