@@ -131,19 +131,18 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
131
131
) ;
132
132
133
133
useEffect ( ( ) => {
134
- if ( showFilterConfiguration ) {
135
- Children . toArray ( children ) . forEach ( ( item : ReactElement < any > ) => {
136
- if (
137
- prevVisibleInFilterBarProps . current ?. [ item . key ] !== undefined &&
138
- prevVisibleInFilterBarProps . current ?. [ item . key ] !== item . props . visibleInFilterBar
139
- ) {
140
- const updatedToggledFilters = toggledFilters ;
141
- delete updatedToggledFilters [ item . key ] ;
142
- setToggledFilters ( updatedToggledFilters ) ;
134
+ Children . toArray ( children ) . forEach ( ( item : ReactElement < any > ) => {
135
+ setToggledFilters ( ( prev ) => {
136
+ if ( ! item . props . hasOwnProperty ( 'visibleInFilterBar' ) && prev ?. [ item . key ] === undefined ) {
137
+ return { ...prev , [ item . key ] : true } ;
143
138
}
139
+ if ( item . props . hasOwnProperty ( 'visibleInFilterBar' ) ) {
140
+ return { ...prev , [ item . key ] : item . props . visibleInFilterBar } ;
141
+ }
142
+ return prev ;
144
143
} ) ;
145
- }
146
- } , [ children , prevVisibleInFilterBarProps , setToggledFilters , toggledFilters , showFilterConfiguration ] ) ;
144
+ } ) ;
145
+ } , [ children , setToggledFilters ] ) ;
147
146
148
147
useEffect ( ( ) => {
149
148
setShowFilters ( useToolbar ? filterBarExpanded : true ) ;
@@ -171,9 +170,14 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
171
170
const handleDialogSave = useCallback (
172
171
( e , newRefs , updatedToggledFilters ) => {
173
172
setDialogRefs ( newRefs ) ;
174
- setToggledFilters ( { ...toggledFilters , ...updatedToggledFilters } ) ;
173
+ setToggledFilters ( ( old ) => ( { ...old , ...updatedToggledFilters } ) ) ;
175
174
if ( onFiltersDialogSave ) {
176
- onFiltersDialogSave ( enrichEventWithDetails ( e ) ) ;
175
+ onFiltersDialogSave (
176
+ enrichEventWithDetails ( e , {
177
+ elements : newRefs ,
178
+ toggledElements : { ...toggledFilters , ...updatedToggledFilters }
179
+ } )
180
+ ) ;
177
181
}
178
182
handleDialogClose ( e ) ;
179
183
} ,
@@ -215,7 +219,7 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
215
219
] ) ;
216
220
217
221
const safeChildren = useCallback ( ( ) => {
218
- if ( showFilterConfiguration && Object . keys ( toggledFilters ) . length > 0 ) {
222
+ if ( Object . keys ( toggledFilters ) . length > 0 ) {
219
223
return Children . toArray ( children ) . map ( ( child : ReactElement ) => {
220
224
if ( toggledFilters ?. [ child . key ] !== undefined ) {
221
225
return cloneElement ( child , {
0 commit comments