50 lines
2.0 KiB
JavaScript
50 lines
2.0 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = useTimeSelection;
|
|
var _timeUtil = require("../utils/timeUtil");
|
|
function useTimeSelection(_ref) {
|
|
var value = _ref.value,
|
|
generateConfig = _ref.generateConfig,
|
|
disabledMinutes = _ref.disabledMinutes,
|
|
disabledSeconds = _ref.disabledSeconds,
|
|
minutes = _ref.minutes,
|
|
seconds = _ref.seconds,
|
|
use12Hours = _ref.use12Hours;
|
|
var setTime = function setTime(isNewPM, newHour, newMinute, newSecond) {
|
|
var now = generateConfig.getNow();
|
|
var newDate = value || now;
|
|
var mergedHour = newHour < 0 ? generateConfig.getHour(now) : newHour;
|
|
var mergedMinute = newMinute < 0 ? generateConfig.getMinute(now) : newMinute;
|
|
var mergedSecond = newSecond < 0 ? generateConfig.getSecond(now) : newSecond;
|
|
var newDisabledMinutes = disabledMinutes && disabledMinutes(mergedHour);
|
|
if (newDisabledMinutes !== null && newDisabledMinutes !== void 0 && newDisabledMinutes.includes(mergedMinute)) {
|
|
// find the first available minute in minutes
|
|
var availableMinute = minutes.find(function (i) {
|
|
return !newDisabledMinutes.includes(i.value);
|
|
});
|
|
if (availableMinute) {
|
|
mergedMinute = availableMinute.value;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
var newDisabledSeconds = disabledSeconds && disabledSeconds(mergedHour, mergedMinute);
|
|
if (newDisabledSeconds !== null && newDisabledSeconds !== void 0 && newDisabledSeconds.includes(mergedSecond)) {
|
|
// find the first available second in seconds
|
|
var availableSecond = seconds.find(function (i) {
|
|
return !newDisabledSeconds.includes(i.value);
|
|
});
|
|
if (availableSecond) {
|
|
mergedSecond = availableSecond.value;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
newDate = (0, _timeUtil.setTime)(generateConfig, newDate, !use12Hours || !isNewPM ? mergedHour : mergedHour + 12, mergedMinute, mergedSecond);
|
|
return newDate;
|
|
};
|
|
return setTime;
|
|
} |