UNPKG

rsuite

Version:

A suite of react components

32 lines (31 loc) 1.13 kB
'use client'; "use strict"; exports.__esModule = true; exports.useCalendarDate = void 0; var _react = require("react"); var _hooks = require("../../internals/hooks"); var _date = require("../../internals/utils/date"); const useCalendarDate = (value, defaultDate) => { const valueRef = (0, _react.useRef)(value); const [calendarDate, setValue] = (0, _react.useState)(value ?? defaultDate ?? (0, _date.startOfToday)()); const setCalendarDate = (0, _react.useCallback)(date => { if (date && date?.valueOf() !== calendarDate?.valueOf()) { setValue(date); } }, [calendarDate]); const resetCalendarDate = (0, _react.useCallback)((nextValue = value) => { setValue(nextValue ?? defaultDate ?? (0, _date.startOfToday)()); }, [defaultDate, value]); (0, _hooks.useUpdateEffect)(() => { if (value?.valueOf() !== valueRef.current?.valueOf()) { setCalendarDate(value ?? defaultDate ?? (0, _date.startOfToday)()); valueRef.current = value; } }, [value, defaultDate]); return { calendarDate, setCalendarDate, resetCalendarDate }; }; exports.useCalendarDate = useCalendarDate;