UNPKG

lucid-ui

Version:

A UI component library from AppNexus.

62 lines (53 loc) 2.08 kB
import React, { useCallback } from 'react'; import { lucidClassNames } from '../../util/style-helpers'; import TimeSelectInput from './TimeSelectInput'; var cx = lucidClassNames.bind('&-TimeSelect'); var getCleanedHour = function getCleanedHour(partialCleanedHour) { return partialCleanedHour < 0 ? 23 : partialCleanedHour > 23 ? 0 : partialCleanedHour; }; var getCleanedAMHour = function getCleanedAMHour(nextHour) { var partialCleanedHour = nextHour > 12 ? nextHour - 12 : nextHour < 0 ? nextHour + 12 : nextHour; return getCleanedHour(partialCleanedHour); }; var getCleanedPMHour = function getCleanedPMHour(nextHour) { var partialCleanedHour = nextHour === 12 ? 12 : nextHour > 12 ? nextHour : nextHour + 12; return getCleanedHour(partialCleanedHour); }; var TimeSelectHour = function TimeSelectHour(_ref) { var hour = _ref.hour, is24HourClock = _ref.is24HourClock, time = _ref.time, isAM = _ref.isAM, isDisabled = _ref.isDisabled, onChange = _ref.onChange; var onHourChange = useCallback(function (nextHourString) { var nextHour = +nextHourString; var updatedTime = new Date(time); if (is24HourClock) { var cleanedNextHour = nextHour < 0 ? -1 : nextHour > 23 ? 24 : nextHour; updatedTime.setHours(cleanedNextHour); } else { var nextHouris12 = nextHour === 12; var shouldRollOver = hour === 11 && nextHouris12; var shouldRollBack = hour === 12 && nextHour === 11; var cleanedHour; if (shouldRollOver) { cleanedHour = isAM ? 12 : 24; } else if (shouldRollBack) { cleanedHour = isAM ? -1 : 11; } else { cleanedHour = isAM ? getCleanedAMHour(nextHour) : getCleanedPMHour(nextHour); } updatedTime.setHours(cleanedHour); } onChange(updatedTime); }, [time, is24HourClock, isAM, hour]); return /*#__PURE__*/React.createElement(TimeSelectInput, { className: cx('&-time-hour'), value: hour, name: "Hour", onChange: onHourChange, disabled: isDisabled }); }; export default TimeSelectHour;