amis-rpc-design/node_modules/rc-picker/lib/hooks/useTimeSelection.js
2023-10-07 19:42:30 +08:00

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;
}