From d1e72154c4d30d5e2abfbef934c216d5af4a07ce Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 2 Feb 2024 15:12:59 -0700 Subject: [PATCH] Fix timeline --- web/src/utils/dateUtil.ts | 9 +++++++-- web/src/utils/historyUtil.ts | 4 +++- web/src/views/history/DesktopTimelineView.tsx | 4 +--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/web/src/utils/dateUtil.ts b/web/src/utils/dateUtil.ts index df06a7173..f17a261fc 100644 --- a/web/src/utils/dateUtil.ts +++ b/web/src/utils/dateUtil.ts @@ -284,8 +284,13 @@ export function getRangeForTimestamp(timestamp: number) { date.setHours(date.getHours() + 1); // ensure not to go past current time - const end = Math.min(new Date().getTime() / 1000, date.getTime() / 1000); - return { start, end }; + return { start, end: endOfHourOrCurrentTime(date.getTime() / 1000) }; +} + +export function endOfHourOrCurrentTime(timestamp: number) { + const now = new Date(); + now.setMilliseconds(0); + return Math.min(timestamp, now.getTime() / 1000); } export function isCurrentHour(timestamp: number) { diff --git a/web/src/utils/historyUtil.ts b/web/src/utils/historyUtil.ts index 38b27126d..34ba035a2 100644 --- a/web/src/utils/historyUtil.ts +++ b/web/src/utils/historyUtil.ts @@ -1,3 +1,5 @@ +import { endOfHourOrCurrentTime } from "./dateUtil"; + // group history cards by 120 seconds of activity const GROUP_SECONDS = 120; @@ -169,7 +171,7 @@ export function getTimelineHoursForDay( break; } - end = startDay.getTime() / 1000; + end = endOfHourOrCurrentTime(startDay.getTime() / 1000); const hour = Object.values(day).find((cards) => { const card = Object.values(cards)[0]; if (card == undefined || card.time < start || card.time > end) { diff --git a/web/src/views/history/DesktopTimelineView.tsx b/web/src/views/history/DesktopTimelineView.tsx index fdac8d921..0cabd35ac 100644 --- a/web/src/views/history/DesktopTimelineView.tsx +++ b/web/src/views/history/DesktopTimelineView.tsx @@ -180,9 +180,7 @@ export default function DesktopTimelineView({ timeline.range.start == selectedPlayback.range.start; const graphData = timelineGraphData[timeline.range.start]; const start = new Date(timeline.range.start * 1000); - const end = new Date( - Math.min(timeline.range.end * 1000, new Date().getTime()) - ); + const end = new Date(timeline.range.end * 1000); return (