diff --git a/src/dialogs/generic/dialog-box.ts b/src/dialogs/generic/dialog-box.ts index fa00af4ae345..ffde7b17b912 100644 --- a/src/dialogs/generic/dialog-box.ts +++ b/src/dialogs/generic/dialog-box.ts @@ -1,15 +1,15 @@ -import { mdiAlertOutline } from "@mdi/js"; +import { mdiAlertOutline, mdiClose } from "@mdi/js"; import { css, html, LitElement, nothing } from "lit"; import { customElement, property, query, state } from "lit/decorators"; import { ifDefined } from "lit/directives/if-defined"; import { fireEvent } from "../../common/dom/fire_event"; import "../../components/ha-button"; +import "../../components/ha-dialog-footer"; import "../../components/ha-dialog-header"; -import "../../components/ha-md-dialog"; -import type { HaMdDialog } from "../../components/ha-md-dialog"; import "../../components/ha-svg-icon"; import "../../components/ha-textfield"; import type { HaTextField } from "../../components/ha-textfield"; +import "../../components/ha-wa-dialog"; import type { HomeAssistant } from "../../types"; import type { DialogBoxParams } from "./show-dialog-box"; @@ -19,12 +19,12 @@ class DialogBox extends LitElement { @state() private _params?: DialogBoxParams; + @state() private _open = false; + @state() private _closeState?: "canceled" | "confirmed"; @query("ha-textfield") private _textField?: HaTextField; - @query("ha-md-dialog") private _dialog?: HaMdDialog; - private _closePromise?: Promise; private _closeResolve?: () => void; @@ -34,6 +34,7 @@ class DialogBox extends LitElement { await this._closePromise; } this._params = params; + this._open = true; } public closeDialog(): boolean { @@ -60,16 +61,25 @@ class DialogBox extends LitElement { this.hass.localize("ui.dialogs.generic.default_confirmation_title")); return html` - -
- + + ${!confirmPrompt + ? html` + ` + : nothing} + ${this._params.warning ? html` -
-
+ +
${this._params.text ? html`

${this._params.text}

` : ""} ${this._params.prompt ? html` -
+ ${confirmPrompt ? html` -
- + + `; } @@ -148,8 +160,7 @@ class DialogBox extends LitElement { } private _closeDialog() { - fireEvent(this, "dialog-closed", { dialog: this.localName }); - this._dialog?.close(); + this._open = false; this._closePromise = new Promise((resolve) => { this._closeResolve = resolve; }); @@ -162,6 +173,7 @@ class DialogBox extends LitElement { } this._closeState = undefined; this._params = undefined; + this._open = false; this._closeResolve?.(); this._closeResolve = undefined; }