@@ -52,7 +52,7 @@ export default function EditFiltersPopup({ onCancel, onDone }) {
52
52
) ;
53
53
const [ filterGroups , setFilterGroups ] = useState ( initialFilters ) ;
54
54
const [ selectedFilters , setSelectedFilters ] = useState ( initialSelection ) ;
55
- const [ sections , setSections ] = useState ( initialSections , initialSections ) ;
55
+ const [ sections , setSections ] = useState ( initialSections ) ;
56
56
57
57
const handleCancel = ( ) => {
58
58
if ( onCancel ) {
@@ -108,27 +108,32 @@ export default function EditFiltersPopup({ onCancel, onDone }) {
108
108
if ( index === - 1 ) {
109
109
setSelectedFilters ( [ filter , ...selectedFilters ] ) ;
110
110
setSearchFilters ( {
111
- ...search . filters ,
112
- [ filter ] : { ...search . filters [ filter ] , active : true } ,
111
+ ...searchFilters ,
112
+ [ filter ] : { ...searchFilters [ filter ] , active : true } ,
113
113
} ) ;
114
114
}
115
115
} else {
116
116
if ( index !== - 1 ) {
117
117
setSelectedFilters ( selectedFilters . filter ( ( _ , i ) => i !== index ) ) ;
118
118
setSearchFilters ( {
119
- ...search . filters ,
120
- [ filter ] : { ...search . filters [ filter ] , active : false } ,
119
+ ...searchFilters ,
120
+ [ filter ] : { ...searchFilters [ filter ] , active : false } ,
121
121
} ) ;
122
122
}
123
123
}
124
124
} ;
125
125
126
126
const handleSearch = ( q ) => {
127
127
if ( q . length === 0 ) {
128
- setFilterGroups ( initialFilters ) ;
128
+ const [ filteredSections , filteredGroups ] = getInitialFilters (
129
+ searchFilters ,
130
+ ( ) => true
131
+ ) ;
132
+ setSections ( filteredSections ) ;
133
+ setFilterGroups ( filteredGroups ) ;
129
134
} else if ( q . length >= 3 ) {
130
135
const [ filteredSections , filteredGroups ] = getInitialFilters (
131
- { ... search . filters } ,
136
+ searchFilters ,
132
137
( f ) => {
133
138
return f . text . toLowerCase ( ) . includes ( q . toLowerCase ( ) ) ;
134
139
}
@@ -236,10 +241,10 @@ function PopupSection({ title, filters, onFilterValueChange }) {
236
241
< >
237
242
< PopupSectionTitle text = { title } />
238
243
< div className = { styles . popupSectionBody } >
239
- { filters . map ( ( filter , index ) => {
244
+ { filters . map ( ( filter ) => {
240
245
return (
241
246
< PopupSectionRow
242
- key = { index }
247
+ key = { filter . id }
243
248
text = { filter . name }
244
249
filterActivated = { filter . isActive }
245
250
id = { filter . id }
0 commit comments