UNPKG

rsuite

Version:

A suite of react components

45 lines (35 loc) 1.6 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _react = require("react"); var _utils = require("../utils"); var useCalendarDate = function useCalendarDate(value, defaultDate) { var _ref; var valueRef = (0, _react.useRef)(value); var _useState = (0, _react.useState)((_ref = value !== null && value !== void 0 ? value : defaultDate) !== null && _ref !== void 0 ? _ref : new Date()), calendarDate = _useState[0], setValue = _useState[1]; var setCalendarDate = (0, _react.useCallback)(function (date) { if (date && (date === null || date === void 0 ? void 0 : date.valueOf()) !== (calendarDate === null || calendarDate === void 0 ? void 0 : calendarDate.valueOf())) { setValue(date); } }, [calendarDate]); var resetCalendarDate = (0, _react.useCallback)(function () { var _ref2; setValue((_ref2 = value !== null && value !== void 0 ? value : defaultDate) !== null && _ref2 !== void 0 ? _ref2 : new Date()); }, [defaultDate, value]); (0, _utils.useUpdateEffect)(function () { var _valueRef$current; if ((value === null || value === void 0 ? void 0 : value.valueOf()) !== ((_valueRef$current = valueRef.current) === null || _valueRef$current === void 0 ? void 0 : _valueRef$current.valueOf())) { setCalendarDate(value !== null && value !== void 0 ? value : new Date()); valueRef.current = value; } }, [value]); return { calendarDate: calendarDate, setCalendarDate: setCalendarDate, resetCalendarDate: resetCalendarDate }; }; var _default = useCalendarDate; exports.default = _default;