I'm using Vaadin web components in a Polymer 3.0 app. Client-side Javascript only. No Flow, no Java backend. After updating web components from v14 to v24, vaadin-grid-filter's internal text field now immediately populates when the user enters a value into the filter's slotted vaadin-text-field. That automatically triggers a call to the dataProvider callback function. It doesn't happen automatically in v14. With v14 I have control over when the dataProvider is called.
Here's the updated code in vaadin-grid-filter showing the addition of a filter controller that appears to be the key to the change in behavior:
static get observers() {
return ['_filterChanged(path, value, _textField)'];
}
/** @protected */
ready() {
super.ready();
this._filterController = new SlotController(this, '', 'vaadin-text-field', {
initializer: (field) => {
field.addEventListener('value-changed', (e) => {
this.value = e.detail.value;
});
this._textField = field;
},
});
this.addController(this._filterController);
}
I need to be able to wait for the user to press a search button before the dataProvider callback is called. This works as needed in v14. Is there a way to get it to work in v24?