63 lines
2.6 KiB
JavaScript
63 lines
2.6 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = useInvalidate;
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
var _rcUtil = require("rc-util");
|
|
/**
|
|
* Check if provided date is valid for the `disabledDate` & `showTime.disabledTime`.
|
|
*/
|
|
function useInvalidate(generateConfig, picker, disabledDate, showTime) {
|
|
// Check disabled date
|
|
var isInvalidate = (0, _rcUtil.useEvent)(function (date, info) {
|
|
var outsideInfo = (0, _objectSpread2.default)({
|
|
type: picker
|
|
}, info);
|
|
delete outsideInfo.activeIndex;
|
|
if (
|
|
// Date object is invalid
|
|
!generateConfig.isValidate(date) ||
|
|
// Date is disabled by `disabledDate`
|
|
disabledDate && disabledDate(date, outsideInfo)) {
|
|
return true;
|
|
}
|
|
if ((picker === 'date' || picker === 'time') && showTime) {
|
|
var _showTime$disabledTim;
|
|
var range = info && info.activeIndex === 1 ? 'end' : 'start';
|
|
var _ref = ((_showTime$disabledTim = showTime.disabledTime) === null || _showTime$disabledTim === void 0 ? void 0 : _showTime$disabledTim.call(showTime, date, range, {
|
|
from: outsideInfo.from
|
|
})) || {},
|
|
disabledHours = _ref.disabledHours,
|
|
disabledMinutes = _ref.disabledMinutes,
|
|
disabledSeconds = _ref.disabledSeconds,
|
|
disabledMilliseconds = _ref.disabledMilliseconds;
|
|
var legacyDisabledHours = showTime.disabledHours,
|
|
legacyDisabledMinutes = showTime.disabledMinutes,
|
|
legacyDisabledSeconds = showTime.disabledSeconds;
|
|
var mergedDisabledHours = disabledHours || legacyDisabledHours;
|
|
var mergedDisabledMinutes = disabledMinutes || legacyDisabledMinutes;
|
|
var mergedDisabledSeconds = disabledSeconds || legacyDisabledSeconds;
|
|
var hour = generateConfig.getHour(date);
|
|
var minute = generateConfig.getMinute(date);
|
|
var second = generateConfig.getSecond(date);
|
|
var millisecond = generateConfig.getMillisecond(date);
|
|
if (mergedDisabledHours && mergedDisabledHours().includes(hour)) {
|
|
return true;
|
|
}
|
|
if (mergedDisabledMinutes && mergedDisabledMinutes(hour).includes(minute)) {
|
|
return true;
|
|
}
|
|
if (mergedDisabledSeconds && mergedDisabledSeconds(hour, minute).includes(second)) {
|
|
return true;
|
|
}
|
|
if (disabledMilliseconds && disabledMilliseconds(hour, minute, second).includes(millisecond)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
});
|
|
return isInvalidate;
|
|
} |