import * as PopoverPrimitive from "@radix-ui/react-popover" import clsx from "clsx" import { isNil } from "lodash" import moment from "moment" import React, { useEffect, useState } from "react" import ArrowDownIcon from "../../fundamentals/icons/arrow-down-icon" import ClockIcon from "../../fundamentals/icons/clock-icon" import InputContainer from "../../fundamentals/input-container" import InputHeader from "../../fundamentals/input-header" import NumberScroller from "../number-scroller" import { DateTimePickerProps } from "./types" const TimePicker: React.FC = ({ date, onSubmitDate, label = "start date", required = false, tooltipContent, tooltip, }) => { const [selectedMinute, setSelectedMinute] = useState( new Date(date)?.getUTCMinutes() ) const [selectedHour, setSelectedHour] = useState( new Date(date)?.getUTCHours() ) useEffect(() => { setSelectedMinute(new Date(date)?.getUTCMinutes()) setSelectedHour(new Date(date)?.getUTCHours()) }, [date]) useEffect(() => { if (date && !isNil(selectedHour) && !isNil(selectedMinute)) { const newDate = new Date(new Date(date).getTime()) newDate.setUTCHours(selectedHour) newDate.setUTCMinutes(selectedMinute) onSubmitDate(newDate) } }, [selectedMinute, selectedHour]) const [isOpen, setIsOpen] = useState(false) const minuteNumbers = [...Array(60).keys()] const hourNumbers = [...Array(24).keys()] return (
setSelectedHour(n as number)} className="pr-4" /> setSelectedMinute(n as number)} />
) } export default TimePicker