useInvalidate.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = useInvalidate;
  7. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  8. var _rcUtil = require("rc-util");
  9. /**
  10. * Check if provided date is valid for the `disabledDate` & `showTime.disabledTime`.
  11. */
  12. function useInvalidate(generateConfig, picker, disabledDate, showTime) {
  13. // Check disabled date
  14. var isInvalidate = (0, _rcUtil.useEvent)(function (date, info) {
  15. var outsideInfo = (0, _objectSpread2.default)({
  16. type: picker
  17. }, info);
  18. delete outsideInfo.activeIndex;
  19. if (
  20. // Date object is invalid
  21. !generateConfig.isValidate(date) ||
  22. // Date is disabled by `disabledDate`
  23. disabledDate && disabledDate(date, outsideInfo)) {
  24. return true;
  25. }
  26. if ((picker === 'date' || picker === 'time') && showTime) {
  27. var _showTime$disabledTim;
  28. var range = info && info.activeIndex === 1 ? 'end' : 'start';
  29. var _ref = ((_showTime$disabledTim = showTime.disabledTime) === null || _showTime$disabledTim === void 0 ? void 0 : _showTime$disabledTim.call(showTime, date, range, {
  30. from: outsideInfo.from
  31. })) || {},
  32. disabledHours = _ref.disabledHours,
  33. disabledMinutes = _ref.disabledMinutes,
  34. disabledSeconds = _ref.disabledSeconds,
  35. disabledMilliseconds = _ref.disabledMilliseconds;
  36. var legacyDisabledHours = showTime.disabledHours,
  37. legacyDisabledMinutes = showTime.disabledMinutes,
  38. legacyDisabledSeconds = showTime.disabledSeconds;
  39. var mergedDisabledHours = disabledHours || legacyDisabledHours;
  40. var mergedDisabledMinutes = disabledMinutes || legacyDisabledMinutes;
  41. var mergedDisabledSeconds = disabledSeconds || legacyDisabledSeconds;
  42. var hour = generateConfig.getHour(date);
  43. var minute = generateConfig.getMinute(date);
  44. var second = generateConfig.getSecond(date);
  45. var millisecond = generateConfig.getMillisecond(date);
  46. if (mergedDisabledHours && mergedDisabledHours().includes(hour)) {
  47. return true;
  48. }
  49. if (mergedDisabledMinutes && mergedDisabledMinutes(hour).includes(minute)) {
  50. return true;
  51. }
  52. if (mergedDisabledSeconds && mergedDisabledSeconds(hour, minute).includes(second)) {
  53. return true;
  54. }
  55. if (disabledMilliseconds && disabledMilliseconds(hour, minute, second).includes(millisecond)) {
  56. return true;
  57. }
  58. }
  59. return false;
  60. });
  61. return isInvalidate;
  62. }