From 8f2854f93e14258dd323a1d1fd751856847a06ea Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sat, 26 Jul 2025 17:33:37 -0500 Subject: [PATCH] Ensure returned day is parsed as midnight in specified timezone --- web/src/views/system/StorageMetrics.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/web/src/views/system/StorageMetrics.tsx b/web/src/views/system/StorageMetrics.tsx index a2de81394..6ae40089a 100644 --- a/web/src/views/system/StorageMetrics.tsx +++ b/web/src/views/system/StorageMetrics.tsx @@ -13,6 +13,7 @@ import { FrigateConfig } from "@/types/frigateConfig"; import { useFormattedTimestamp, useTimezone } from "@/hooks/use-date-utils"; import { RecordingsSummary } from "@/types/review"; import { useTranslation } from "react-i18next"; +import { TZDate } from "react-day-picker"; type CameraStorage = { [key: string]: { @@ -66,9 +67,10 @@ export default function StorageMetrics({ const earliestDate = useMemo(() => { const keys = Object.keys(recordingsSummary || {}); return keys.length - ? new Date(keys[keys.length - 1]).getTime() / 1000 + ? new TZDate(keys[keys.length - 1] + "T00:00:00", timezone).getTime() / + 1000 : null; - }, [recordingsSummary]); + }, [recordingsSummary, timezone]); const timeFormat = config?.ui.time_format === "24hour" ? "24hour" : "12hour"; const format = useMemo(() => { @@ -80,7 +82,7 @@ export default function StorageMetrics({ const formattedEarliestDate = useFormattedTimestamp( earliestDate || 0, format, - "UTC", // timezone is already converted from recordings summary endpoint + timezone, ); if (!cameraStorage || !stats || !totalStorage || !config) {