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 74 | import React, { useMemo } from 'react';
import EnhancedTableToolbar from './EnhancedTableToolbar';
import { EnhancedTopBarSelectionProps, TopBarButton } 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;
|