mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-27 19:26:36 +00:00
Correctly handle "hours to show" for footer graph (#8071)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
parent
0dd9b21c2d
commit
9b7d8934da
@ -21,7 +21,7 @@ import { LovelaceHeaderFooter, LovelaceHeaderFooterEditor } from "../types";
|
||||
import { GraphHeaderFooterConfig } from "./types";
|
||||
|
||||
const MINUTE = 60000;
|
||||
const DAY = 86400000;
|
||||
const HOUR = MINUTE * 60;
|
||||
|
||||
@customElement("hui-graph-header-footer")
|
||||
export class HuiGraphHeaderFooter extends LitElement
|
||||
@ -162,10 +162,24 @@ export class HuiGraphHeaderFooter extends LitElement
|
||||
: this._date;
|
||||
|
||||
if (this._stateHistory!.length) {
|
||||
this._stateHistory = this._stateHistory!.filter(
|
||||
(entity) =>
|
||||
endTime.getTime() - new Date(entity.last_changed).getTime() <= DAY
|
||||
const inHoursToShow: HassEntity[] = [];
|
||||
const outHoursToShow: HassEntity[] = [];
|
||||
// Split into inside and outside of "hours to show".
|
||||
this._stateHistory!.forEach((entity) =>
|
||||
(endTime.getTime() - new Date(entity.last_changed).getTime() <=
|
||||
this._config!.hours_to_show! * HOUR
|
||||
? inHoursToShow
|
||||
: outHoursToShow
|
||||
).push(entity)
|
||||
);
|
||||
|
||||
if (outHoursToShow.length) {
|
||||
// If we have values that are now outside of "hours to show", re-add the last entry. This could e.g. be
|
||||
// the "initial state" from the history backend. Without it, it would look like there is no history data
|
||||
// at the start at all in the database = graph would start suddenly instead of on the left side of the card.
|
||||
inHoursToShow.push(outHoursToShow[outHoursToShow.length - 1]);
|
||||
}
|
||||
this._stateHistory = inHoursToShow;
|
||||
}
|
||||
|
||||
const stateHistory = await fetchRecent(
|
||||
|
Loading…
x
Reference in New Issue
Block a user