frigate/web/src/hooks/use-date-utils.ts
Nicolas Mowen 87ab4e7c9b
UI Fixes (#13703)
* Respect ui configured timezone

* Non alert videos are always 16:9
2024-09-12 14:28:15 -05:00

46 lines
1.1 KiB
TypeScript

import { FrigateConfig } from "@/types/frigateConfig";
import { formatUnixTimestampToDateTime } from "@/utils/dateUtil";
import { useMemo } from "react";
export function useFormattedTimestamp(
timestamp: number,
format: string,
timezone?: string,
) {
const formattedTimestamp = useMemo(() => {
return formatUnixTimestampToDateTime(timestamp, {
timezone,
strftime_fmt: format,
});
}, [format, timestamp, timezone]);
return formattedTimestamp;
}
export function useFormattedRange(start: number, end: number, format: string) {
const formattedStart = useMemo(() => {
return formatUnixTimestampToDateTime(start, {
strftime_fmt: format,
});
}, [format, start]);
const formattedEnd = useMemo(() => {
return formatUnixTimestampToDateTime(end, {
strftime_fmt: format,
});
}, [format, end]);
return `${formattedStart} - ${formattedEnd}`;
}
export function useTimezone(config: FrigateConfig | undefined) {
return useMemo(() => {
if (!config) {
return undefined;
}
return (
config.ui?.timezone || Intl.DateTimeFormat().resolvedOptions().timeZone
);
}, [config]);
}