File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -126,10 +126,21 @@ class FrontendAPI implements FrontendAPIInterface {
126126
127127 setListFilter ( filter : FilterParams ) : void {
128128 if ( this . listFilterValidation ( filter ) ) {
129- if ( this . filtersStore . filters . some ( ( f : any ) => { return f . field === filter . field && f . operator === filter . operator } ) ) {
130- throw new Error ( `Filter ${ filter . field } with operator ${ filter . operator } already exists` )
129+ const existingFilterIndex = this . filtersStore . filters . findIndex ( ( f : any ) => {
130+ return f . field === filter . field && f . operator === filter . operator
131+ } ) ;
132+
133+ if ( existingFilterIndex !== - 1 ) {
134+ // Update existing filter instead of throwing error
135+ const filters = [ ...this . filtersStore . filters ] ;
136+ if ( filter . value === undefined ) {
137+ filters . splice ( existingFilterIndex , 1 ) ;
138+ } else {
139+ filters [ existingFilterIndex ] = filter ;
140+ }
141+ this . filtersStore . setFilters ( filters ) ;
131142 } else {
132- this . filtersStore . setFilter ( filter )
143+ this . filtersStore . setFilter ( filter ) ;
133144 }
134145 }
135146 }
You can’t perform that action at this time.
0 commit comments