From 55edeb474e3284116d6d049349c0a51951952ee0 Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Mon, 6 Mar 2023 08:10:08 -0800 Subject: [PATCH] Preserve custom names in statistics graph when modifying entity list (#15695) --- .../hui-statistics-graph-card-editor.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts index ae556b90e5..af616f0ff5 100644 --- a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts @@ -300,18 +300,26 @@ export class HuiStatisticsGraphCardEditor } private async _entitiesChanged(ev: CustomEvent): Promise { - const config = { ...this._config!, entities: ev.detail.value }; + const newEntityIds = ev.detail.value; + + // Save the EntityConfig objects from being replaced with strings + const newEntities = newEntityIds.map((newEnt) => { + const matchEntity = this._config!.entities.find( + (oldEnt) => typeof oldEnt !== "string" && oldEnt.entity === newEnt + ); + return matchEntity ?? newEnt; + }); + + const config = { ...this._config!, entities: newEntities }; if ( - config.entities?.some((statistic_id) => - isExternalStatistic(statistic_id) - ) && + newEntityIds?.some((statistic_id) => isExternalStatistic(statistic_id)) && config.period === "5minute" ) { delete config.period; } const metadata = config.stat_types || config.unit - ? await getStatisticMetadata(this.hass!, config.entities) + ? await getStatisticMetadata(this.hass!, newEntityIds) : undefined; if (config.stat_types && config.entities.length) { config.stat_types = ensureArray(config.stat_types).filter((stat_type) =>