From de370d638493452bcf9f1d704bf38e345f65dc14 Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Wed, 15 Nov 2023 11:26:03 +0100 Subject: [PATCH] Add todo entity_id in URL (#18653) --- src/panels/todo/ha-panel-todo.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/panels/todo/ha-panel-todo.ts b/src/panels/todo/ha-panel-todo.ts index 19810c70d9..43efd5d305 100644 --- a/src/panels/todo/ha-panel-todo.ts +++ b/src/panels/todo/ha-panel-todo.ts @@ -45,6 +45,9 @@ import { HomeAssistant } from "../../types"; import { HuiErrorCard } from "../lovelace/cards/hui-error-card"; import { createCardElement } from "../lovelace/create-element/create-card-element"; import { LovelaceCard } from "../lovelace/types"; +import { navigate } from "../../common/navigate"; +import { createSearchParam } from "../../common/url/search-params"; +import { constructUrlCurrentPath } from "../../common/url/construct-url"; @customElement("ha-panel-todo") class PanelTodo extends LitElement { @@ -108,15 +111,14 @@ class PanelTodo extends LitElement { if (!this.hasUpdated && !this._entityId) { this._entityId = getTodoLists(this.hass)[0]?.entity_id; } else if (!this.hasUpdated) { - this._createCard(); + this._setupTodoElement(); } } protected updated(changedProperties: PropertyValues): void { super.updated(changedProperties); - if (changedProperties.has("_entityId")) { - this._createCard(); + this._setupTodoElement(); } if (changedProperties.has("hass") && this._card) { @@ -124,11 +126,16 @@ class PanelTodo extends LitElement { } } - private _createCard(): void { + private _setupTodoElement(): void { if (!this._entityId) { this._card = undefined; + navigate(constructUrlCurrentPath(""), { replace: true }); return; } + navigate( + constructUrlCurrentPath(createSearchParam({ entity_id: this._entityId })), + { replace: true } + ); this._card = createCardElement({ type: "todo-list", entity: this._entityId,