diff --git a/src/panels/lovelace/components/hui-buttons-base.ts b/src/panels/lovelace/components/hui-buttons-base.ts index 9a745c0322..0a616df12c 100644 --- a/src/panels/lovelace/components/hui-buttons-base.ts +++ b/src/panels/lovelace/components/hui-buttons-base.ts @@ -85,12 +85,7 @@ export class HuiButtonsBase extends LitElement { private _handleAction(ev: ActionHandlerEvent) { const config = (ev.currentTarget as any).config as EntitiesCardEntityConfig; - handleAction( - this, - this._hass!, - { tap_action: { action: "toggle" }, ...config }, - ev.detail.action! - ); + handleAction(this, this._hass!, config, ev.detail.action!); } static get styles(): CSSResult { diff --git a/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts b/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts index 8364a33e9c..19f8be82be 100644 --- a/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts +++ b/src/panels/lovelace/header-footer/hui-buttons-header-footer.ts @@ -4,6 +4,7 @@ import { LitElement, property, TemplateResult, + internalProperty, } from "lit-element"; import { HomeAssistant } from "../../../types"; import { processConfigEntities } from "../common/process-config-entities"; @@ -21,15 +22,20 @@ export class HuiButtonsHeaderFooter extends LitElement @property({ attribute: false }) public hass?: HomeAssistant; - private _configEntities?: EntityConfig[]; + @internalProperty() private _configEntities?: EntityConfig[]; public getCardSize(): number { return 1; } public setConfig(config: ButtonsHeaderFooterConfig): void { - this._configEntities = processConfigEntities(config.entities); - this.requestUpdate(); + this._configEntities = processConfigEntities(config.entities).map( + (entityConfig) => ({ + tap_action: { action: "toggle" }, + hold_action: { action: "more-info" }, + ...entityConfig, + }) + ); } protected render(): TemplateResult | void { diff --git a/src/panels/lovelace/special-rows/hui-buttons-row.ts b/src/panels/lovelace/special-rows/hui-buttons-row.ts index 67ba91fb58..574ffd0bf4 100644 --- a/src/panels/lovelace/special-rows/hui-buttons-row.ts +++ b/src/panels/lovelace/special-rows/hui-buttons-row.ts @@ -4,6 +4,7 @@ import { LitElement, property, TemplateResult, + internalProperty, } from "lit-element"; import { HomeAssistant } from "../../../types"; import { processConfigEntities } from "../common/process-config-entities"; @@ -22,11 +23,16 @@ export class HuiButtonsRow extends LitElement implements LovelaceRow { @property({ attribute: false }) public hass?: HomeAssistant; - private _configEntities?: EntityConfig[]; + @internalProperty() private _configEntities?: EntityConfig[]; public setConfig(config: ButtonsRowConfig): void { - this._configEntities = processConfigEntities(config.entities); - this.requestUpdate(); + this._configEntities = processConfigEntities(config.entities).map( + (entityConfig) => ({ + tap_action: { action: "toggle" }, + hold_action: { action: "more-info" }, + ...entityConfig, + }) + ); } protected render(): TemplateResult | void {