Add item count to DataListToolbar

Signed-off-by: Vadiem Janssens <info@vadiemjanssens.nl>
This commit is contained in:
Vadiem Janssens
2020-07-13 20:32:08 +02:00
parent 68c62d74f6
commit 30a499b785
3 changed files with 24 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ import { SearchColumns, SortColumns, QSConfig } from '../../types';
class DataListToolbar extends React.Component { class DataListToolbar extends React.Component {
render() { render() {
const { const {
itemCount,
clearAllFilters, clearAllFilters,
searchColumns, searchColumns,
sortColumns, sortColumns,
@@ -85,6 +86,9 @@ class DataListToolbar extends React.Component {
</Fragment> </Fragment>
</ToolbarGroup> </ToolbarGroup>
)} )}
<ToolbarItem id="item-count">
{itemCount} {i18n._(t`results`)}
</ToolbarItem>
<ToolbarGroup> <ToolbarGroup>
{additionalControls.map(control => ( {additionalControls.map(control => (
<ToolbarItem key={control.key}>{control}</ToolbarItem> <ToolbarItem key={control.key}>{control}</ToolbarItem>
@@ -97,6 +101,7 @@ class DataListToolbar extends React.Component {
} }
DataListToolbar.propTypes = { DataListToolbar.propTypes = {
itemCount: PropTypes.number,
clearAllFilters: PropTypes.func, clearAllFilters: PropTypes.func,
qsConfig: QSConfig.isRequired, qsConfig: QSConfig.isRequired,
searchColumns: SearchColumns.isRequired, searchColumns: SearchColumns.isRequired,
@@ -114,6 +119,7 @@ DataListToolbar.propTypes = {
}; };
DataListToolbar.defaultProps = { DataListToolbar.defaultProps = {
itemCount: 0,
clearAllFilters: null, clearAllFilters: null,
showSelectAll: false, showSelectAll: false,
isAllSelected: false, isAllSelected: false,

View File

@@ -285,4 +285,21 @@ describe('<DataListToolbar />', () => {
const checkbox = toolbar.find('Checkbox'); const checkbox = toolbar.find('Checkbox');
expect(checkbox.prop('isChecked')).toBe(true); expect(checkbox.prop('isChecked')).toBe(true);
}); });
test('it shows item count', () => {
const searchColumns = [{ name: 'Name', key: 'name', isDefault: true }];
const sortColumns = [{ name: 'Name', key: 'name' }];
const itemCount = 5;
toolbar = mountWithContexts(
<DataListToolbar
qsConfig={QS_CONFIG}
searchColumns={searchColumns}
sortColumns={sortColumns}
itemCount={itemCount}
/>
);
const count = toolbar.find('#item-count');
expect(count.at(0).text()).toEqual('5 results');
});
}); });

View File

@@ -118,6 +118,7 @@ class ListHeader extends React.Component {
) : ( ) : (
<Fragment> <Fragment>
{renderToolbar({ {renderToolbar({
itemCount,
searchColumns, searchColumns,
sortColumns, sortColumns,
onSearch: this.handleSearch, onSearch: this.handleSearch,