Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | import React, { useMemo } from 'react'; import EnhancedTableToolbar from './EnhancedTableToolbar'; import { TopBarButton, EnhancedTopBarSelectionProps } from './index'; export interface EnhancedTopBarSelectionConfig { handleSelectAll?: () => void; handleSelectNone?: () => void; renderEnhancedNumSelectedText?: () => string; renderSelectAllText?: () => string; renderSelectNoneText?: () => string; } type DecoratedEnhancedTopBarSelectionConfig = Omit< EnhancedTopBarSelectionConfig, 'renderEnhancedNumSelectedText' | 'renderSelectAllText' | 'renderSelectNoneText' > & EnhancedTopBarSelectionProps; interface EnhancedTableToolbarV2Props { selectedRowsCount: number; pagesCount: number; renderNumSelectedText?: (selectedCount: number) => string; rowsCount: number; topBarButtons?: (TopBarButton | JSX.Element)[]; topBarSelectionConfig?: DecoratedEnhancedTopBarSelectionConfig; } const EnhancedTableToolbarV2 = ({ selectedRowsCount, pagesCount, renderNumSelectedText, rowsCount, topBarButtons, topBarSelectionConfig, }: EnhancedTableToolbarV2Props) => { const _topBarSelectionConfig = useMemo((): EnhancedTopBarSelectionConfig | undefined => { if (!topBarSelectionConfig) { return topBarSelectionConfig; } const { renderEnhancedNumSelectedText, renderSelectAllText } = topBarSelectionConfig; return { ...topBarSelectionConfig, renderEnhancedNumSelectedText: () => (renderEnhancedNumSelectedText && renderEnhancedNumSelectedText(selectedRowsCount || 0, pagesCount)) || '', renderSelectAllText: () => (renderSelectAllText && renderSelectAllText(rowsCount)) || '', }; }, [topBarSelectionConfig, selectedRowsCount, rowsCount, pagesCount]); if (topBarSelectionConfig) { return ( <EnhancedTableToolbar numSelected={selectedRowsCount} topBarButtons={topBarButtons} topBarSelectionConfig={_topBarSelectionConfig} isAllSelected={rowsCount === selectedRowsCount} renderNumSelectedText={renderNumSelectedText} /> ); } return ( <EnhancedTableToolbar numSelected={selectedRowsCount} renderNumSelectedText={renderNumSelectedText} topBarButtons={topBarButtons} /> ); }; export default EnhancedTableToolbarV2; |