Make editing home location more clear (#14636)

This commit is contained in:
Bram Kragten 2022-12-14 09:13:31 +01:00 committed by GitHub
parent 9fdef3df6d
commit 2176d4dcea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 9 deletions

View File

@ -67,23 +67,28 @@ export class HaLocationsEditor extends LitElement {
private Leaflet?: LeafletModuleType;
private _loadPromise: Promise<boolean | void>;
constructor() {
super();
import("leaflet").then((module) => {
this._loadPromise = import("leaflet").then((module) =>
import("leaflet-draw").then(() => {
this.Leaflet = module.default as LeafletModuleType;
this._updateMarkers();
this.updateComplete.then(() => this.fitMap());
});
});
return this.updateComplete.then(() => this.fitMap());
})
);
}
public fitMap(): void {
this.map.fitMap();
}
public fitMarker(id: string): void {
public async fitMarker(id: string): Promise<void> {
if (!this.Leaflet) {
await this._loadPromise;
}
if (!this.map.leafletMap || !this._locationMarkers) {
return;
}

View File

@ -391,7 +391,7 @@ class HaConfigSectionGeneral extends LitElement {
);
private _editLocation() {
navigate("/config/zone");
navigate("/config/zone/edit/zone.home");
}
static styles = [

View File

@ -1,4 +1,4 @@
import { mdiPencil, mdiPencilOff, mdiPlus } from "@mdi/js";
import { mdiCog, mdiPencil, mdiPencilOff, mdiPlus } from "@mdi/js";
import "@polymer/paper-item/paper-icon-item";
import "@polymer/paper-item/paper-item-body";
import "@polymer/paper-listbox/paper-listbox";
@ -191,7 +191,7 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
!this._canEditCore}
.path=${stateObject.entity_id === "zone.home" &&
this._canEditCore
? mdiPencil
? mdiCog
: mdiPencilOff}
.label=${stateObject.entity_id === "zone.home"
? hass.localize("ui.panel.config.zone.edit_home")
@ -273,6 +273,19 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
}
}
protected updated() {
if (
!this.route.path.startsWith("/edit/") ||
!this._stateItems ||
!this._storageItems
) {
return;
}
const id = this.route.path.slice(6);
navigate("/config/zone", { replace: true });
this._zoomZone(id);
}
public willUpdate(changedProps: PropertyValues) {
super.updated(changedProps);
const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
@ -374,7 +387,7 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
this._zoomZone(entityId);
}
private _zoomZone(id: string) {
private async _zoomZone(id: string) {
this._map?.fitMarker(id);
}