diff --git a/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts index a9d822bcd1..5ed0bab88a 100644 --- a/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-stack-card-editor.ts @@ -167,6 +167,9 @@ export class HuiStackCardEditor this._setMode(true); this._guiModeAvailable = true; this._selectedCard = parseInt(ev.detail.selected, 10); + if (this._cardEditorEl) { + this._cardEditorEl.forceRebuild = true; + } } protected _handleConfigChanged(ev: HASSDomEvent) { diff --git a/src/panels/lovelace/editor/hui-element-editor.ts b/src/panels/lovelace/editor/hui-element-editor.ts index e06cb7d83b..f3480a6dde 100644 --- a/src/panels/lovelace/editor/hui-element-editor.ts +++ b/src/panels/lovelace/editor/hui-element-editor.ts @@ -53,6 +53,8 @@ export abstract class HuiElementEditor extends LitElement { @property({ attribute: false }) public lovelace?: LovelaceConfig; + public forceRebuild = false; + @state() private _yaml?: string; @state() private _config?: T; @@ -292,7 +294,11 @@ export abstract class HuiElementEditor extends LitElement { this._errors = undefined; this._warnings = undefined; - if (this._configElementType !== this.configElementType) { + if ( + this._configElementType !== this.configElementType || + this.forceRebuild + ) { + this.forceRebuild = false; // If the type has changed, we need to load a new GUI editor this._guiSupported = undefined; this._configElement = undefined;