useInvalidate.js 2.3 KB

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