import { BottomSheet } from '@cloud-ru/ds-bottom-sheet'; import { usePortalContext } from '@cloud-ru/ds-portal-context'; import { useThemeClassnames } from '@cloud-ru/ds-theme'; import { useLayoutEffect } from '@cloud-ru/ds-utils'; import { useState } from 'react'; import { toolbarLocale } from '../../../../locale'; import { TEST_IDS } from '../../../../testIds'; import { BulkAction } from '../../types'; import { BulkActionsControls } from '../BulkActionsControls'; import { SelectionLabel } from '../SelectionLabel'; type MobileBulkActionsSheetProps = { open: boolean; actions: BulkAction[]; selectedCount: number; totalCount?: number; hasSelection: boolean; checked?: boolean; indeterminate?: boolean; onCheck?(): void; showBulkCheckbox?: boolean; }; const CLOSE_STUB_CALLBACK = () => undefined; export function MobileBulkActionsSheet({ open, actions, selectedCount, totalCount, hasSelection, checked, indeterminate, onCheck, showBulkCheckbox, }: MobileBulkActionsSheetProps) { const { t } = toolbarLocale.useTranslations(); const portalContext = usePortalContext(); const [bottomSheetKey, setBottomSheetKey] = useState('notReady'); useLayoutEffect(() => { setBottomSheetKey('ready'); }, []); // Фиксируем density, остальные оси (colorScheme/brand/…) наследуем из контекста темы. const themeClassName = useThemeClassnames({ density: 'comfort' }); return ( } content={ } showBackdrop={false} swipeEnabled={false} lockScroll={false} closeOnPopstate={false} safeArea={false} withDividers={false} data-test-id={TEST_IDS.mobileBulkActionsSheet} /> ); }