Skip to content
Merged
Show file tree
Hide file tree
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
4 changes: 4 additions & 0 deletions packages/react-core/src/components/Toolbar/Toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ export interface ToolbarProps extends React.HTMLProps<HTMLDivElement>, OUIAProps
xl?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl';
'2xl'?: 'insetNone' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl';
};
/** Text to display in the total number of applied filters ToolbarFilter */
numberOfFiltersText?: (numberOfFilters: number) => string;
}

export interface ToolbarState {
Expand Down Expand Up @@ -125,6 +127,7 @@ export class Toolbar extends React.Component<ToolbarProps, ToolbarState> {
usePageInsets,
isSticky,
ouiaId,
numberOfFiltersText,
...props
} = this.props;

Expand Down Expand Up @@ -171,6 +174,7 @@ export class Toolbar extends React.Component<ToolbarProps, ToolbarState> {
showClearFiltersButton={showClearFiltersButton}
clearFiltersButtonText={clearFiltersButtonText}
numberOfFilters={numberOfFilters}
numberOfFiltersText={numberOfFiltersText}
collapseListedFiltersBreakpoint={collapseListedFiltersBreakpoint}
/>
</ToolbarContext.Provider>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ export interface ToolbarChipGroupContentProps extends React.HTMLProps<HTMLDivEle
clearFiltersButtonText?: string;
/** Total number of filters currently being applied across all ToolbarFilter components */
numberOfFilters: number;
/** Text to display in the total number of applied filters ToolbarFilter */
numberOfFiltersText?: (numberOfFilters: number) => string;
/** The breakpoint at which the listed filters in chip groups are collapsed down to a summary */
collapseListedFiltersBreakpoint?: 'all' | 'md' | 'lg' | 'xl' | '2xl';
}
Expand All @@ -33,7 +35,8 @@ export class ToolbarChipGroupContent extends React.Component<ToolbarChipGroupCon
static displayName = 'ToolbarChipGroupContent';
static defaultProps: PickOptional<ToolbarChipGroupContentProps> = {
clearFiltersButtonText: 'Clear all filters',
collapseListedFiltersBreakpoint: 'lg'
collapseListedFiltersBreakpoint: 'lg',
numberOfFiltersText: (numberOfFilters: number) => `${numberOfFilters} filters applied`
};

render() {
Expand All @@ -46,6 +49,7 @@ export class ToolbarChipGroupContent extends React.Component<ToolbarChipGroupCon
clearFiltersButtonText,
collapseListedFiltersBreakpoint,
numberOfFilters,
numberOfFiltersText,
...props
} = this.props;

Expand Down Expand Up @@ -79,7 +83,7 @@ export class ToolbarChipGroupContent extends React.Component<ToolbarChipGroupCon
/>
{collapseListedFilters && numberOfFilters > 0 && !isExpanded && (
<ToolbarGroup>
<ToolbarItem>{numberOfFilters} filters applied</ToolbarItem>
<ToolbarItem>{numberOfFiltersText(numberOfFilters)}</ToolbarItem>
</ToolbarGroup>
)}
{showClearFiltersButton && !isExpanded && (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ exports[`Toolbar should match snapshot (auto-generated) 1`] = `
collapseListedFiltersBreakpoint="md"
isExpanded={true}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
/>
</ContextProvider>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ exports[`Toolbar should render inset 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -255,6 +256,7 @@ exports[`Toolbar should render with page inset flag 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ describe('Data Toolbar Demo Test', () => {
it('displays X filters applied message', () => {
cy.get('.pf-m-chip-container .pf-m-chip-group').should('not.exist');
cy.get('.pf-c-toolbar__item').should('contain.text', 'filters applied');
cy.get('.pf-c-toolbar__item').should('contain.text', 'Applied filters: ');
cy.get('.pf-c-toolbar__item .pf-c-button').should('be.visible');
cy.get('.pf-c-toolbar__item .pf-c-chip-group__close').should('not.be.visible');
cy.get('.pf-c-toolbar__item .pf-c-button').contains('Clear filters');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,15 @@ export class ToolbarDemo extends React.Component<ToolbarProps, ToolbarState> {
>
<ToolbarContent>{toolbarItems}</ToolbarContent>
</Toolbar>
<Toolbar
id="toolbar-number-of-filters-text"
clearAllFilters={this.onDelete}
className="pf-m-toggle-group-container"
clearFiltersButtonText="Clear filters"
numberOfFiltersText={numOfFilters => `Applied filters: ${numOfFilters}`}
>
<ToolbarContent>{toolbarItems}</ToolbarContent>
</Toolbar>
</React.Fragment>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -619,6 +619,7 @@ exports[`TopologyControlBar should accept button options correctly 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -1497,6 +1498,7 @@ exports[`TopologyControlBar should display the default controls correctly 1`] =
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ exports[`TopologyView should display resizable topology sidebar correctly 1`] =
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -558,6 +559,7 @@ exports[`TopologyView should display topology correctly 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -820,6 +822,7 @@ exports[`TopologyView should display topology sidebar correctly 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -1086,6 +1089,7 @@ exports[`TopologyView should display topology w/ open resizable sidebar correctl
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down Expand Up @@ -1434,6 +1438,7 @@ exports[`TopologyView should display topology w/ open sidebar correctly 1`] = `
collapseListedFiltersBreakpoint="lg"
isExpanded={false}
numberOfFilters={0}
numberOfFiltersText={[Function]}
showClearFiltersButton={false}
>
<div
Expand Down