Fix export time picker on iOS

This commit is contained in:
Josh Hawkins 2024-09-27 07:29:04 -05:00
parent a6ccb37683
commit 588c348b36

View File

@ -22,7 +22,7 @@ import { FrigateConfig } from "@/types/frigateConfig";
import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover"; import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover";
import { TimezoneAwareCalendar } from "./ReviewActivityCalendar"; import { TimezoneAwareCalendar } from "./ReviewActivityCalendar";
import { SelectSeparator } from "../ui/select"; import { SelectSeparator } from "../ui/select";
import { isDesktop } from "react-device-detect"; import { isDesktop, isIOS } from "react-device-detect";
import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer"; import { Drawer, DrawerContent, DrawerTrigger } from "../ui/drawer";
import SaveExportOverlay from "./SaveExportOverlay"; import SaveExportOverlay from "./SaveExportOverlay";
import { getUTCOffset } from "@/utils/dateUtil"; import { getUTCOffset } from "@/utils/dateUtil";
@ -435,15 +435,18 @@ function CustomTimeSelector({
id="startTime" id="startTime"
type="time" type="time"
value={startClock} value={startClock}
step="1" step={isIOS ? "60" : "1"}
onChange={(e) => { onChange={(e) => {
const clock = e.target.value; const clock = e.target.value;
const [hour, minute, second] = clock.split(":"); const [hour, minute, second] = isIOS
? [...clock.split(":"), "00"]
: clock.split(":");
const start = new Date(startTime * 1000); const start = new Date(startTime * 1000);
start.setHours( start.setHours(
parseInt(hour), parseInt(hour),
parseInt(minute), parseInt(minute),
parseInt(second), parseInt(second ?? 0),
0, 0,
); );
setRange({ setRange({
@ -497,15 +500,18 @@ function CustomTimeSelector({
id="startTime" id="startTime"
type="time" type="time"
value={endClock} value={endClock}
step="1" step={isIOS ? "60" : "1"}
onChange={(e) => { onChange={(e) => {
const clock = e.target.value; const clock = e.target.value;
const [hour, minute, second] = clock.split(":"); const [hour, minute, second] = isIOS
const end = new Date(endTime * 1000); ? [...clock.split(":"), "00"]
: clock.split(":");
const end = new Date(startTime * 1000);
end.setHours( end.setHours(
parseInt(hour), parseInt(hour),
parseInt(minute), parseInt(minute),
parseInt(second), parseInt(second ?? 0),
0, 0,
); );
setRange({ setRange({