From 1b441a7eec206d98701e456180f4b82211601b9f Mon Sep 17 00:00:00 2001 From: __JosephAbbey Date: Tue, 8 Oct 2024 09:04:16 +0100 Subject: [PATCH] Add support for relative start and end time displays in state-display (#22249) * Add support for relative start and end time displays in state-display * Add support for sun attributes as well * Improve state-display code for relative-time --------- Co-authored-by: Wendelin --- src/state-display/state-display.ts | 39 ++++++++++++++++++------------ 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/state-display/state-display.ts b/src/state-display/state-display.ts index a6f12693dd..ea6daabb46 100644 --- a/src/state-display/state-display.ts +++ b/src/state-display/state-display.ts @@ -99,31 +99,38 @@ class StateDisplay extends LitElement { if (content === "name") { return html`${this.name || stateObj.attributes.friendly_name}`; } + + let relativeDateTime: string | undefined; + // Check last-changed for backwards compatibility if (content === "last_changed" || content === "last-changed") { - return html` - - `; + relativeDateTime = stateObj.last_changed; } // Check last_updated for backwards compatibility if (content === "last_updated" || content === "last-updated") { - return html` - - `; + relativeDateTime = stateObj.last_updated; } - if (content === "last_triggered") { + + if ( + content === "last_triggered" || + (domain === "calendar" && + (content === "start_time" || content === "end_time")) || + (domain === "sun" && + (content === "next_dawn" || + content === "next_dusk" || + content === "next_midnight" || + content === "next_noon" || + content === "next_rising" || + content === "next_setting")) + ) { + relativeDateTime = stateObj.attributes[content]; + } + + if (relativeDateTime) { return html` `;