diff --git a/src/panels/lovelace/cards/hui-markdown-card.ts b/src/panels/lovelace/cards/hui-markdown-card.ts index ec78139c22..5ab0227f18 100644 --- a/src/panels/lovelace/cards/hui-markdown-card.ts +++ b/src/panels/lovelace/cards/hui-markdown-card.ts @@ -9,6 +9,7 @@ import { } from "lit"; import { customElement, property, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; +import { fireEvent } from "../../../common/dom/fire_event"; import { applyThemesOnElement } from "../../../common/dom/apply_themes_on_element"; import "../../../components/ha-card"; import "../../../components/ha-markdown"; @@ -113,7 +114,15 @@ export class HuiMarkdownCard extends LitElement implements LovelaceCard { if (changedProps.has("_config")) { this._tryConnect(); } - + const shouldBeHidden = + this._templateResult && + this._config.show_empty === false && + this._templateResult.result.length === 0; + if (shouldBeHidden !== this.hidden) { + this.style.display = shouldBeHidden ? "none" : "block"; + this.toggleAttribute("hidden", shouldBeHidden); + fireEvent(this, "card-visibility-changed", { value: !shouldBeHidden }); + } const oldHass = changedProps.get("hass") as HomeAssistant | undefined; const oldConfig = changedProps.get("_config") as | MarkdownCardConfig diff --git a/src/panels/lovelace/cards/types.ts b/src/panels/lovelace/cards/types.ts index f911d48afb..38a94f1ce5 100644 --- a/src/panels/lovelace/cards/types.ts +++ b/src/panels/lovelace/cards/types.ts @@ -316,6 +316,7 @@ export interface MarkdownCardConfig extends LovelaceCardConfig { card_size?: number; entity_ids?: string | string[]; theme?: string; + show_empty?: boolean; } export interface MediaControlCardConfig extends LovelaceCardConfig {