Update script picker to use relative time for last_triggered (#13973)

This commit is contained in:
krazos 2022-10-04 05:40:12 -04:00 committed by GitHub
parent d5cdd53fab
commit 37394f7bc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,7 +11,9 @@ import { HassEntity } from "home-assistant-js-websocket";
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
import { customElement, property, state } from "lit/decorators"; import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one"; import memoizeOne from "memoize-one";
import { formatDateTime } from "../../../common/datetime/format_date_time"; import { differenceInDays } from "date-fns/esm";
import { formatShortDateTime } from "../../../common/datetime/format_date_time";
import { relativeTime } from "../../../common/datetime/relative_time";
import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event"; import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeStateName } from "../../../common/entity/compute_state_name";
import { navigate } from "../../../common/navigate"; import { navigate } from "../../../common/navigate";
@ -99,18 +101,22 @@ class HaScriptPicker extends LitElement {
direction: "asc", direction: "asc",
grows: true, grows: true,
template: narrow template: narrow
? (name, script: any) => html` ? (name, script: any) => {
const date = new Date(script.attributes.last_triggered);
const now = new Date();
const dayDifference = differenceInDays(now, date);
return html`
${name} ${name}
<div class="secondary"> <div class="secondary">
${this.hass.localize("ui.card.automation.last_triggered")}: ${this.hass.localize("ui.card.automation.last_triggered")}:
${script.attributes.last_triggered ${script.attributes.last_triggered
? formatDateTime( ? dayDifference > 3
new Date(script.attributes.last_triggered), ? formatShortDateTime(date, this.hass.locale)
this.hass.locale : relativeTime(date, this.hass.locale)
)
: this.hass.localize("ui.components.relative_time.never")} : this.hass.localize("ui.components.relative_time.never")}
</div> </div>
` `;
}
: undefined, : undefined,
}, },
}; };
@ -119,11 +125,18 @@ class HaScriptPicker extends LitElement {
sortable: true, sortable: true,
width: "40%", width: "40%",
title: this.hass.localize("ui.card.automation.last_triggered"), title: this.hass.localize("ui.card.automation.last_triggered"),
template: (last_triggered) => html` template: (last_triggered) => {
const date = new Date(last_triggered);
const now = new Date();
const dayDifference = differenceInDays(now, date);
return html`
${last_triggered ${last_triggered
? formatDateTime(new Date(last_triggered), this.hass.locale) ? dayDifference > 3
? formatShortDateTime(date, this.hass.locale)
: relativeTime(date, this.hass.locale)
: this.hass.localize("ui.components.relative_time.never")} : this.hass.localize("ui.components.relative_time.never")}
`, `;
},
}; };
} }