diff --git a/src/components/data-table/ha-data-table.ts b/src/components/data-table/ha-data-table.ts index b2d669105b..af06549c80 100644 --- a/src/components/data-table/ha-data-table.ts +++ b/src/components/data-table/ha-data-table.ts @@ -571,6 +571,9 @@ export class HaDataTable extends LitElement { } private _handleSearchChange(ev: CustomEvent): void { + if (this.filter) { + return; + } this._debounceSearch(ev.detail.value); } diff --git a/src/layouts/hass-tabs-subpage-data-table.ts b/src/layouts/hass-tabs-subpage-data-table.ts index b92f35e2e9..c291eab335 100644 --- a/src/layouts/hass-tabs-subpage-data-table.ts +++ b/src/layouts/hass-tabs-subpage-data-table.ts @@ -234,6 +234,9 @@ export class HaTabsSubpageDataTable extends LitElement { } private _handleSearchChange(ev: CustomEvent) { + if (this.filter === ev.detail.value) { + return; + } this.filter = ev.detail.value; fireEvent(this, "search-changed", { value: this.filter }); } diff --git a/src/panels/config/devices/ha-config-devices-dashboard.ts b/src/panels/config/devices/ha-config-devices-dashboard.ts index 8b541f711a..76b3c5d87f 100644 --- a/src/panels/config/devices/ha-config-devices-dashboard.ts +++ b/src/panels/config/devices/ha-config-devices-dashboard.ts @@ -67,7 +67,7 @@ export class HaConfigDeviceDashboard extends LitElement { @state() private _showDisabled = false; - @state() private _filter = ""; + @state() private _filter: string = history.state?.filter || ""; @state() private _numHiddenDevices = 0; @@ -490,6 +490,7 @@ export class HaConfigDeviceDashboard extends LitElement { private _handleSearchChange(ev: CustomEvent) { this._filter = ev.detail.value; + history.replaceState({ filter: this._filter }, ""); } private _clearFilter() { diff --git a/src/panels/config/entities/ha-config-entities.ts b/src/panels/config/entities/ha-config-entities.ts index fb91132d8c..7c03fd89f3 100644 --- a/src/panels/config/entities/ha-config-entities.ts +++ b/src/panels/config/entities/ha-config-entities.ts @@ -109,7 +109,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) { @state() private _showReadOnly = true; - @state() private _filter = ""; + @state() private _filter: string = history.state?.filter || ""; @state() private _numHiddenEntities = 0; @@ -711,6 +711,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) { private _handleSearchChange(ev: CustomEvent) { this._filter = ev.detail.value; + history.replaceState({ filter: this._filter }, ""); } private _handleSelectionChanged( diff --git a/src/panels/config/integrations/ha-config-integrations.ts b/src/panels/config/integrations/ha-config-integrations.ts index 686eeaaa60..7aa599d8a2 100644 --- a/src/panels/config/integrations/ha-config-integrations.ts +++ b/src/panels/config/integrations/ha-config-integrations.ts @@ -137,7 +137,7 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) { window.location.hash.substring(1) ); - @state() private _filter?: string; + @state() private _filter: string = history.state?.filter || ""; @state() private _diagnosticHandlers?: Record; @@ -613,6 +613,7 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) { private _handleSearchChange(ev: CustomEvent) { this._filter = ev.detail.value; + history.replaceState({ filter: this._filter }, ""); } private async _highlightEntry() {