UNPKG

lucid-ui

Version:

A UI component library from Xandr.

30 lines 1.26 kB
import React, { useCallback } from 'react'; import TimeSelectInput from './TimeSelectInput'; const shouldGetNextMinuteStep = (minute, nextMinute) => { return (minute === nextMinute + 15 || minute === nextMinute - 15 || nextMinute > 59 || nextMinute < 0); }; const getNextMinuteStep = (nextMinute) => { return [-15, 0, 15, 30, 45, 60].reduce((prev, curr) => { return Math.abs(curr - nextMinute) < Math.abs(prev - nextMinute) ? curr : prev; }); }; const TimeSelectMinute = ({ minute, time, isDisabled, onChange, }) => { const onMinuteChange = useCallback((nextMinuteString) => { const nextMinute = +nextMinuteString; const updatedTime = new Date(time); const shouldGetNextStep = shouldGetNextMinuteStep(minute, nextMinute); const cleanedMinute = shouldGetNextStep ? getNextMinuteStep(nextMinute) : nextMinute; updatedTime.setMinutes(cleanedMinute); onChange(updatedTime); }, [time, minute]); return (React.createElement(TimeSelectInput, { value: minute, name: 'Minute', onChange: onMinuteChange, disabled: isDisabled, step: 15 })); }; export default TimeSelectMinute; //# sourceMappingURL=TimeSelectMinute.js.map