UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

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