From 88b5243cd132656a4ec5fde1d238ed3f095ed56b Mon Sep 17 00:00:00 2001 From: mlamberts78 Date: Thu, 3 Oct 2024 13:22:14 +0200 Subject: [PATCH] Fix entity selection in card editor --- dist/weather-chart-card.js | 56 ++++++++++++++------------------ src/weather-chart-card-editor.js | 56 ++++++++++++++------------------ 2 files changed, 48 insertions(+), 64 deletions(-) diff --git a/dist/weather-chart-card.js b/dist/weather-chart-card.js index 70bc2f1..5cad33d 100644 --- a/dist/weather-chart-card.js +++ b/dist/weather-chart-card.js @@ -934,6 +934,7 @@ class WeatherChartCardEditor extends s { this.hass.states[config.entity].attributes && this.hass.states[config.entity].attributes.description !== undefined ) || config.description !== undefined; + this.fetchEntities(); this.requestUpdate(); } @@ -952,10 +953,19 @@ class WeatherChartCardEditor extends s { fetchEntities() { if (this.hass) { - this.entities = Object.keys(this.hass.states).filter((e) => - e.startsWith('weather.') - ); + this.entities = Object.keys(this.hass.states).filter((e) => e.startsWith('weather.')); + this.requestUpdate(); + } + } + + _EntityChanged(event, key) { + if (!this._config) { + return; } + const newConfig = { ...this._config }; + newConfig.entity = event.target.value; + this._entity = event.target.value; + this.configChanged(newConfig); } configChanged(newConfig) { @@ -967,22 +977,6 @@ class WeatherChartCardEditor extends s { this.dispatchEvent(event); } - _EntityChanged(event, key) { - if (!this._config) { - return; - } - - const newConfig = { ...this._config }; - - if (key === 'entity') { - newConfig.entity = event.target.value; - this._entity = event.target.value; - } - - this.configChanged(newConfig); - this.requestUpdate(); - } - _valueChanged(event, key) { if (!this._config) { return; @@ -1146,19 +1140,17 @@ class WeatherChartCardEditor extends s {
- this._EntityChanged(e, 'entity')} - @closed=${(ev) => ev.stopPropagation()} - > - ${this.entities.map((entity) => { - return x`${entity}`; - })} - + this._EntityChanged(e, 'entity')} + @closed=${(ev) => ev.stopPropagation()} +> + ${this.entities.map((entity) => x`${entity}`)} + - e.startsWith('weather.') - ); + this.entities = Object.keys(this.hass.states).filter((e) => e.startsWith('weather.')); + this.requestUpdate(); } } + _EntityChanged(event, key) { + if (!this._config) { + return; + } + const newConfig = { ...this._config }; + newConfig.entity = event.target.value; + this._entity = event.target.value; + this.configChanged(newConfig); + } + configChanged(newConfig) { const event = new Event("config-changed", { bubbles: true, @@ -102,22 +112,6 @@ class WeatherChartCardEditor extends LitElement { this.dispatchEvent(event); } - _EntityChanged(event, key) { - if (!this._config) { - return; - } - - const newConfig = { ...this._config }; - - if (key === 'entity') { - newConfig.entity = event.target.value; - this._entity = event.target.value; - } - - this.configChanged(newConfig); - this.requestUpdate(); - } - _valueChanged(event, key) { if (!this._config) { return; @@ -281,19 +275,17 @@ class WeatherChartCardEditor extends LitElement {
- this._EntityChanged(e, 'entity')} - @closed=${(ev) => ev.stopPropagation()} - > - ${this.entities.map((entity) => { - return html`${entity}`; - })} - + this._EntityChanged(e, 'entity')} + @closed=${(ev) => ev.stopPropagation()} +> + ${this.entities.map((entity) => html`${entity}`)} +