From a5759e36b2b5da95a0da583ee364b435419bc63e Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 26 Apr 2023 15:29:59 +0200 Subject: [PATCH] Fix helper entity settings (removing) (#16320) --- .../entity-registry-settings-editor.ts | 28 +++++-------------- .../entities/entity-registry-settings.ts | 23 +++++++++++++-- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/panels/config/entities/entity-registry-settings-editor.ts b/src/panels/config/entities/entity-registry-settings-editor.ts index 1f9d4906f7..245b08bf41 100644 --- a/src/panels/config/entities/entity-registry-settings-editor.ts +++ b/src/panels/config/entities/entity-registry-settings-editor.ts @@ -43,7 +43,7 @@ import { STREAM_TYPE_HLS, updateCameraPrefs, } from "../../../data/camera"; -import { ConfigEntry, getConfigEntries } from "../../../data/config_entries"; +import { ConfigEntry } from "../../../data/config_entries"; import { createConfigFlow, handleConfigFlowStep, @@ -129,6 +129,8 @@ export class EntityRegistrySettingsEditor extends LitElement { @property({ type: Boolean }) public disabled = false; + @property() public helperConfigEntry?: ConfigEntry; + @state() private _name!: string; @state() private _icon!: string; @@ -147,8 +149,6 @@ export class EntityRegistrySettingsEditor extends LitElement { @state() private _device?: DeviceRegistryEntry; - @state() private _helperConfigEntry?: ConfigEntry; - @state() private _unit_of_measurement?: string | null; @state() private _precision?: number | null; @@ -177,20 +177,6 @@ export class EntityRegistrySettingsEditor extends LitElement { private _deviceClassOptions?: string[][]; - protected firstUpdated(changedProps: PropertyValues): void { - super.firstUpdated(changedProps); - if (this.entry.config_entry_id) { - getConfigEntries(this.hass, { - type: ["helper"], - domain: this.entry.platform, - }).then((entries) => { - this._helperConfigEntry = entries.find( - (ent) => ent.entry_id === this.entry.config_entry_id - ); - }); - } - } - protected willUpdate(changedProperties: PropertyValues) { super.willUpdate(changedProperties); if (!changedProperties.has("entry")) { @@ -686,7 +672,7 @@ export class EntityRegistrySettingsEditor extends LitElement { ` : ""} - ${this._helperConfigEntry && this._helperConfigEntry.supports_options + ${this.helperConfigEntry && this.helperConfigEntry.supports_options ? html` @@ -711,7 +697,7 @@ export class EntityRegistrySettingsEditor extends LitElement { "integration", domainToName( this.hass.localize, - this._helperConfigEntry.domain + this.helperConfigEntry.domain ) )} @@ -1124,7 +1110,7 @@ export class EntityRegistrySettingsEditor extends LitElement { } private async _showOptionsFlow() { - showOptionsFlowDialog(this, this._helperConfigEntry!, null); + showOptionsFlowDialog(this, this.helperConfigEntry!, null); } private _switchAsDomainsSorted = memoizeOne( diff --git a/src/panels/config/entities/entity-registry-settings.ts b/src/panels/config/entities/entity-registry-settings.ts index e5fcda5222..1671dd5225 100644 --- a/src/panels/config/entities/entity-registry-settings.ts +++ b/src/panels/config/entities/entity-registry-settings.ts @@ -2,11 +2,15 @@ import "@material/mwc-button/mwc-button"; import "@material/mwc-formfield/mwc-formfield"; import "@material/mwc-list/mwc-list-item"; import { HassEntity } from "home-assistant-js-websocket"; -import { css, CSSResultGroup, html, LitElement } from "lit"; +import { css, CSSResultGroup, html, LitElement, PropertyValues } from "lit"; import { customElement, property, query, state } from "lit/decorators"; import { fireEvent } from "../../../common/dom/fire_event"; import "../../../components/ha-alert"; -import { ConfigEntry, deleteConfigEntry } from "../../../data/config_entries"; +import { + ConfigEntry, + deleteConfigEntry, + getConfigEntries, +} from "../../../data/config_entries"; import { updateDeviceRegistryEntry } from "../../../data/device_registry"; import { ExtEntityRegistryEntry, @@ -41,6 +45,20 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) { @query("entity-registry-settings-editor") private _registryEditor?: EntityRegistrySettingsEditor; + protected firstUpdated(changedProps: PropertyValues): void { + super.firstUpdated(changedProps); + if (this.entry.config_entry_id) { + getConfigEntries(this.hass, { + type: ["helper"], + domain: this.entry.platform, + }).then((entries) => { + this._helperConfigEntry = entries.find( + (ent) => ent.entry_id === this.entry.config_entry_id + ); + }); + } + } + protected render() { const stateObj: HassEntity | undefined = this.hass.states[this.entry.entity_id]; @@ -90,6 +108,7 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) {