import { useCallback } from 'react'
import IVDateTimePicker from '~/components/IVDateTimePicker'
import {
IVTimePickerProps,
IVDateTimeChangeValue,
} from '~/components/IVDateTimePicker/datePickerUtils'
/*
* Note, this will not work as the `as` prop of a Formik ,
* because its `onChange` handler expects an HTML event as its argument.
*/
export default function IVTimePicker(props: IVTimePickerProps) {
const { onChange: props_onChange } = props
const onChange = useCallback(
(value: IVDateTimeChangeValue | null) => {
if (!value || value.hour === null || value.minute === null) {
props_onChange(null)
return
}
props_onChange({
hour: value.hour,
minute: value.minute,
})
},
[props_onChange]
)
return (
)
}
function valueToDateObj(value?: IVTimePickerProps['value']) {
if (!value) return null
const date = new Date()
date.setHours(value.hour ?? 0)
date.setMinutes(value.minute ?? 0)
return date
}