ensure range is timezone aware

This commit is contained in:
Josh Hawkins 2025-05-15 16:49:32 -05:00
parent 220e10d4cf
commit 049280e631
2 changed files with 13 additions and 3 deletions

View File

@ -32,10 +32,12 @@ export default function CalendarFilterButton({
updateSelectedDay, updateSelectedDay,
}: CalendarFilterButtonProps) { }: CalendarFilterButtonProps) {
const { t } = useTranslation(["components/filter", "views/events"]); const { t } = useTranslation(["components/filter", "views/events"]);
const { data: config } = useSWR<FrigateConfig>("config");
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const selectedDate = useFormattedTimestamp( const selectedDate = useFormattedTimestamp(
day == undefined ? 0 : day?.getTime() / 1000 + 1, day == undefined ? 0 : day?.getTime() / 1000 + 1,
t("time.formattedTimestampMonthDay", { ns: "common" }), t("time.formattedTimestampMonthDay", { ns: "common" }),
config?.ui.timezone,
); );
const trigger = ( const trigger = (
@ -109,6 +111,7 @@ export function CalendarRangeFilterButton({
range?.from == undefined ? 0 : range.from.getTime() / 1000 + 1, range?.from == undefined ? 0 : range.from.getTime() / 1000 + 1,
range?.to == undefined ? 0 : range.to.getTime() / 1000 - 1, range?.to == undefined ? 0 : range.to.getTime() / 1000 - 1,
t("time.formattedTimestampMonthDay", { ns: "common" }), t("time.formattedTimestampMonthDay", { ns: "common" }),
config?.ui.timezone,
); );
const trigger = ( const trigger = (

View File

@ -21,22 +21,29 @@ export function useFormattedTimestamp(
return formattedTimestamp; return formattedTimestamp;
} }
export function useFormattedRange(start: number, end: number, format: string) { export function useFormattedRange(
start: number,
end: number,
format: string,
timezone?: string,
) {
const locale = useDateLocale(); const locale = useDateLocale();
const formattedStart = useMemo(() => { const formattedStart = useMemo(() => {
return formatUnixTimestampToDateTime(start, { return formatUnixTimestampToDateTime(start, {
timezone,
date_format: format, date_format: format,
locale, locale,
}); });
}, [format, start, locale]); }, [format, start, timezone, locale]);
const formattedEnd = useMemo(() => { const formattedEnd = useMemo(() => {
return formatUnixTimestampToDateTime(end, { return formatUnixTimestampToDateTime(end, {
timezone,
date_format: format, date_format: format,
locale, locale,
}); });
}, [format, end, locale]); }, [format, end, timezone, locale]);
return `${formattedStart} - ${formattedEnd}`; return `${formattedStart} - ${formattedEnd}`;
} }