@@ -131,19 +131,18 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
131131 ) ;
132132
133133 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 } ;
143138 }
139+ if ( item . props . hasOwnProperty ( 'visibleInFilterBar' ) ) {
140+ return { ...prev , [ item . key ] : item . props . visibleInFilterBar } ;
141+ }
142+ return prev ;
144143 } ) ;
145- }
146- } , [ children , prevVisibleInFilterBarProps , setToggledFilters , toggledFilters , showFilterConfiguration ] ) ;
144+ } ) ;
145+ } , [ children , setToggledFilters ] ) ;
147146
148147 useEffect ( ( ) => {
149148 setShowFilters ( useToolbar ? filterBarExpanded : true ) ;
@@ -171,9 +170,14 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
171170 const handleDialogSave = useCallback (
172171 ( e , newRefs , updatedToggledFilters ) => {
173172 setDialogRefs ( newRefs ) ;
174- setToggledFilters ( { ...toggledFilters , ...updatedToggledFilters } ) ;
173+ setToggledFilters ( ( old ) => ( { ...old , ...updatedToggledFilters } ) ) ;
175174 if ( onFiltersDialogSave ) {
176- onFiltersDialogSave ( enrichEventWithDetails ( e ) ) ;
175+ onFiltersDialogSave (
176+ enrichEventWithDetails ( e , {
177+ elements : newRefs ,
178+ toggledElements : { ...toggledFilters , ...updatedToggledFilters }
179+ } )
180+ ) ;
177181 }
178182 handleDialogClose ( e ) ;
179183 } ,
@@ -215,7 +219,7 @@ const FilterBar: FC<FilterBarPropTypes> = forwardRef((props: FilterBarPropTypes,
215219 ] ) ;
216220
217221 const safeChildren = useCallback ( ( ) => {
218- if ( showFilterConfiguration && Object . keys ( toggledFilters ) . length > 0 ) {
222+ if ( Object . keys ( toggledFilters ) . length > 0 ) {
219223 return Children . toArray ( children ) . map ( ( child : ReactElement ) => {
220224 if ( toggledFilters ?. [ child . key ] !== undefined ) {
221225 return cloneElement ( child , {
0 commit comments