@@ -19,7 +19,7 @@ import * as _ from 'lodash';
1919import * as React from 'react' ;
2020import { useTranslation } from 'react-i18next' ;
2121import { useHistory } from 'react-router-dom' ;
22- import { Filter , FilterComponent , FilterDefinition , FilterValue } from '../../model/filters' ;
22+ import { Filter , FilterComponent , FilterDefinition , FilterValue , hasEnabledFilterValues } from '../../model/filters' ;
2323import { autoCompleteCache } from '../../utils/autocomplete-cache' ;
2424import { findFilter } from '../../utils/filter-definitions' ;
2525import { getPathWithParams , netflowTrafficPath } from '../../utils/url' ;
@@ -130,9 +130,12 @@ export const FiltersToolbar: React.FC<FiltersToolbarProps> = ({
130130 < ToolbarItem className = "flex-start" >
131131 { chipFilters &&
132132 chipFilters . map ( ( chipFilter , cfIndex ) => (
133- < div key = { cfIndex } className = { `custom-chip-group ${ chipFilter . disabled ? 'disabled-group' : '' } ` } >
133+ < div
134+ key = { cfIndex }
135+ className = { `custom-chip-group ${ ! hasEnabledFilterValues ( chipFilter ) ? 'disabled-group' : '' } ` }
136+ >
134137 < Tooltip
135- content = { `${ chipFilter . disabled ? t ( 'Enable' ) : t ( 'Disable' ) } '${ getFilterFullName (
138+ content = { `${ ! hasEnabledFilterValues ( chipFilter ) ? t ( 'Enable' ) : t ( 'Disable' ) } '${ getFilterFullName (
136139 chipFilter . def ,
137140 t
138141 ) } ' ${ t ( 'group filter' ) } `}
@@ -141,46 +144,30 @@ export const FiltersToolbar: React.FC<FiltersToolbarProps> = ({
141144 className = "pf-c-chip-group__label"
142145 component = { TextVariants . p }
143146 onClick = { ( ) => {
144- chipFilter . disabled = ! chipFilter . disabled ;
145- //restore all valus if no remaining
146- if ( ! chipFilter . values . find ( fv => fv . disabled !== true ) ) {
147- chipFilter . values . forEach ( fv => {
148- fv . disabled = false ;
149- } ) ;
150- }
147+ //switch all values if no remaining
148+ const isEnabled = hasEnabledFilterValues ( chipFilter ) ;
149+ chipFilter . values . forEach ( fv => {
150+ fv . disabled = isEnabled ;
151+ } ) ;
151152 setFilters ( _ . cloneDeep ( filters ! ) ) ;
152153 } }
153154 >
154155 { getFilterFullName ( chipFilter . def , t ) }
155156 </ Text >
156157 </ Tooltip >
157158 { chipFilter . values . map ( ( chipFilterValue , fvIndex ) => (
158- < div
159- key = { fvIndex }
160- className = { `custom-chip ${ chipFilter . disabled || chipFilterValue . disabled ? 'disabled-value' : '' } ` }
161- >
159+ < div key = { fvIndex } className = { `custom-chip ${ chipFilterValue . disabled ? 'disabled-value' : '' } ` } >
162160 < Tooltip
163- content = { `${
164- chipFilter . disabled || chipFilterValue . disabled ? t ( 'Enable' ) : t ( 'Disable' )
165- } ${ getFilterFullName ( chipFilter . def , t ) } '${ chipFilterValue . display || chipFilterValue . v } ' ${ t (
166- 'filter'
167- ) } `}
161+ content = { `${ chipFilterValue . disabled ? t ( 'Enable' ) : t ( 'Disable' ) } ${ getFilterFullName (
162+ chipFilter . def ,
163+ t
164+ ) } '${ chipFilterValue . display || chipFilterValue . v } ' ${ t ( 'filter' ) } `}
168165 >
169166 < Text
170167 component = { TextVariants . p }
171168 onClick = { ( ) => {
172- //restore group filter & value if disabled
173- if ( chipFilter . disabled ) {
174- chipFilter . disabled = false ;
175- chipFilterValue . disabled = false ;
176- } else {
177- //else switch value
178- chipFilterValue . disabled = ! chipFilterValue . disabled ;
179- //disable parent if no value remaining
180- if ( ! chipFilter . values . find ( fv => fv . disabled !== true ) ) {
181- chipFilter . disabled = true ;
182- }
183- }
169+ //switch value
170+ chipFilterValue . disabled = ! chipFilterValue . disabled ;
184171 setFilters ( _ . cloneDeep ( filters ! ) ) ;
185172 } }
186173 >
0 commit comments