zent
Version:
一套前端设计语言和基于React的实现
23 lines (22 loc) • 1.08 kB
JavaScript
import { useRef, useCallback } from 'react';
import { endOfDay, isAfter, isBefore } from 'date-fns';
export default function useCombinedDisabledDate(selected, disabledDate, generateDate, dateSpan) {
if (dateSpan === void 0) { dateSpan = 0; }
var disabledDateRef = useRef(disabledDate);
disabledDateRef.current = disabledDate;
var disabledCombinedDate = useCallback(function (type) { return function (value) {
var _a;
var date = endOfDay(value);
var offsetDate = generateDate.offsetDate, isSame = generateDate.isSame;
var start = selected[0], end = selected[1];
if ((_a = disabledDateRef.current) === null || _a === void 0 ? void 0 : _a.call(disabledDateRef, date, type)) {
return true;
}
if (start && !end) {
return ((!isSame(date, start) && isBefore(date, start)) ||
(!!dateSpan && isAfter(date, offsetDate(start, dateSpan - 1))));
}
return false;
}; }, [disabledDateRef, dateSpan, generateDate, selected]);
return disabledCombinedDate;
}