diff --git a/src/components/ha-toast.ts b/src/components/ha-toast.ts index 995af16929..d9f18a0fc0 100644 --- a/src/components/ha-toast.ts +++ b/src/components/ha-toast.ts @@ -1,6 +1,12 @@ import { css, html, LitElement } from "lit"; -import { customElement, property, query, state } from "lit/decorators"; import { classMap } from "lit/directives/class-map"; +import { + customElement, + property, + query, + queryAssignedElements, + state, +} from "lit/decorators"; import { ifDefined } from "lit/directives/if-defined"; import { fireEvent } from "../common/dom/fire_event"; import { popoverSupported } from "../common/feature-detect/support-popover"; @@ -25,6 +31,12 @@ export class HaToast extends LitElement { @query(".toast") private _toast?: HTMLDivElement; + @queryAssignedElements({ slot: "action", flatten: true }) + private _actionElements?: Element[]; + + @queryAssignedElements({ slot: "dismiss", flatten: true }) + private _dismissElements?: Element[]; + @state() private _active = false; @state() private _visible = false; @@ -163,6 +175,10 @@ export class HaToast extends LitElement { } protected render() { + const hasAction = + (this._actionElements?.length ?? 0) > 0 || + (this._dismissElements?.length ?? 0) > 0; + return html`