diff --git a/src/panels/config/zone/dialog-home-zone-detail.ts b/src/panels/config/zone/dialog-home-zone-detail.ts
index 08e12f4e80..5c0aa87396 100644
--- a/src/panels/config/zone/dialog-home-zone-detail.ts
+++ b/src/panels/config/zone/dialog-home-zone-detail.ts
@@ -1,9 +1,10 @@
import type { CSSResultGroup } from "lit";
-import { css, html, LitElement, nothing } from "lit";
+import { html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { fireEvent } from "../../../common/dom/fire_event";
-import { createCloseHeading } from "../../../components/ha-dialog";
+import "../../../components/ha-dialog-footer";
+import "../../../components/ha-wa-dialog";
import "../../../components/ha-form/ha-form";
import "../../../components/ha-button";
import type { HomeZoneMutableParams } from "../../../data/zone";
@@ -29,6 +30,8 @@ class DialogHomeZoneDetail extends LitElement {
@state() private _params?: HomeZoneDetailDialogParams;
+ @state() private _open = false;
+
@state() private _submitting = false;
public showDialog(params: HomeZoneDetailDialogParams): void {
@@ -40,9 +43,14 @@ class DialogHomeZoneDetail extends LitElement {
longitude: this.hass.config.longitude,
radius: this.hass.config.radius,
};
+ this._open = true;
}
public closeDialog(): void {
+ this._open = false;
+ }
+
+ private _dialogClosed(): void {
this._params = undefined;
this._data = undefined;
fireEvent(this, "dialog-closed", { dialog: this.localName });
@@ -58,41 +66,40 @@ class DialogHomeZoneDetail extends LitElement {
const valid = !latInvalid && !lngInvalid;
return html`
-
-
-
-
-
- ${this.hass!.localize("ui.common.cancel")}
-
-
- ${this.hass!.localize("ui.common.save")}
-
-
+
+
+
+ ${this.hass!.localize("ui.common.cancel")}
+
+
+ ${this.hass!.localize("ui.common.save")}
+
+
+
`;
}
@@ -130,20 +137,7 @@ class DialogHomeZoneDetail extends LitElement {
}
static get styles(): CSSResultGroup {
- return [
- haStyleDialog,
- css`
- ha-dialog {
- --mdc-dialog-min-width: min(600px, 95vw);
- }
- @media all and (max-width: 450px), all and (max-height: 500px) {
- ha-dialog {
- --mdc-dialog-min-width: 100vw;
- --mdc-dialog-max-width: 100vw;
- }
- }
- `,
- ];
+ return [haStyleDialog];
}
}
diff --git a/src/panels/config/zone/dialog-zone-detail.ts b/src/panels/config/zone/dialog-zone-detail.ts
index 33a8779053..a8a5c0c50b 100644
--- a/src/panels/config/zone/dialog-zone-detail.ts
+++ b/src/panels/config/zone/dialog-zone-detail.ts
@@ -4,7 +4,8 @@ import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
import { fireEvent } from "../../../common/dom/fire_event";
import { addDistanceToCoord } from "../../../common/location/add_distance_to_coord";
-import { createCloseHeading } from "../../../components/ha-dialog";
+import "../../../components/ha-dialog-footer";
+import "../../../components/ha-wa-dialog";
import "../../../components/ha-form/ha-form";
import "../../../components/ha-button";
import type { SchemaUnion } from "../../../components/ha-form/types";
@@ -24,6 +25,8 @@ class DialogZoneDetail extends LitElement {
@state() private _params?: ZoneDetailDialogParams;
+ @state() private _open = false;
+
@state() private _submitting = false;
public showDialog(params: ZoneDetailDialogParams): void {
@@ -50,9 +53,14 @@ class DialogZoneDetail extends LitElement {
radius: 100,
};
}
+ this._open = true;
}
public closeDialog(): void {
+ this._open = false;
+ }
+
+ private _dialogClosed(): void {
this._params = undefined;
this._data = undefined;
fireEvent(this, "dialog-closed", { dialog: this.localName });
@@ -78,61 +86,59 @@ class DialogZoneDetail extends LitElement {
!radiusInvalid;
return html`
-
-
-
-
- ${this._params.entry
- ? html`
-
- ${this.hass!.localize("ui.panel.config.zone.detail.delete")}
-
- `
- : nothing}
-
- ${this.hass!.localize("ui.common.cancel")}
-
-
+
+
${this._params.entry
- ? this.hass!.localize("ui.common.save")
- : this.hass!.localize("ui.panel.config.zone.detail.create")}
-
-
+ ? html`
+
+ ${this.hass!.localize("ui.panel.config.zone.detail.delete")}
+
+ `
+ : html`
+
+ ${this.hass!.localize("ui.common.cancel")}
+
+ `}
+
+ ${this._params.entry
+ ? this.hass!.localize("ui.common.save")
+ : this.hass!.localize("ui.panel.config.zone.detail.create")}
+
+
+
`;
}
@@ -209,7 +215,7 @@ class DialogZoneDetail extends LitElement {
this._submitting = true;
try {
if (await this._params!.removeEntry!()) {
- this._params = undefined;
+ this.closeDialog();
}
} finally {
this._submitting = false;
@@ -220,15 +226,6 @@ class DialogZoneDetail extends LitElement {
return [
haStyleDialog,
css`
- ha-dialog {
- --mdc-dialog-min-width: min(600px, 95vw);
- }
- @media all and (max-width: 450px), all and (max-height: 500px) {
- ha-dialog {
- --mdc-dialog-min-width: 100vw;
- --mdc-dialog-max-width: 100vw;
- }
- }
ha-form.passive {
--zone-radius-color: var(--secondary-text-color);
}