import { getHours, getHoursMinutes, getISOLocalDate, getISOLocalDateTime, } from '@wojtekmaj/date-utils'; type NativeInputProps = { ariaLabel?: string; disabled?: boolean; maxDate?: Date; minDate?: Date; name?: string; onChange?: (event: React.ChangeEvent) => void; required?: boolean; value?: Date | null; valueType: 'hour' | 'minute' | 'second'; }; export default function NativeInput({ ariaLabel, disabled, maxDate, minDate, name, onChange, required, value, valueType, }: NativeInputProps): React.ReactElement { const nativeValueParser = (() => { switch (valueType) { case 'hour': return (receivedValue: Date) => `${getISOLocalDate(receivedValue)}T${getHours(receivedValue)}:00`; case 'minute': return (receivedValue: Date) => `${getISOLocalDate(receivedValue)}T${getHoursMinutes(receivedValue)}`; case 'second': return getISOLocalDateTime; default: throw new Error('Invalid valueType'); } })(); const step = (() => { switch (valueType) { case 'hour': return 3600; case 'minute': return 60; case 'second': return 1; default: throw new Error('Invalid valueType'); } })(); function stopPropagation(event: React.FocusEvent) { event.stopPropagation(); } return ( ); }