rsuite
Version:
A suite of react components
42 lines (41 loc) • 1.43 kB
JavaScript
'use client';
;
exports.__esModule = true;
exports.default = void 0;
exports.useCalendarHandlers = useCalendarHandlers;
var _react = require("react");
var _hooks = require("../../internals/hooks");
var _date = require("../../internals/utils/date");
function useCalendarHandlers({
index,
calendarDateRange,
onChangeCalendarMonth,
onChangeCalendarTime,
onSelect
}) {
const calendarDate = (0, _react.useMemo)(() => calendarDateRange[index], [calendarDateRange, index]);
const handleSelect = (0, _hooks.useEventCallback)((date, event) => {
onSelect?.(index, date, event);
});
const handleChangeMonth = (0, _hooks.useEventCallback)(nextPageDate => {
onChangeCalendarMonth?.(index, nextPageDate);
});
const handleChangeTime = (0, _hooks.useEventCallback)(nextPageDate => {
onChangeCalendarTime?.(index, nextPageDate);
});
const handleMoveForward = (0, _hooks.useEventCallback)(() => {
onChangeCalendarMonth?.(index, (0, _date.addMonths)(calendarDate, 1));
});
const handleMoveBackward = (0, _hooks.useEventCallback)(() => {
onChangeCalendarMonth?.(index, (0, _date.addMonths)(calendarDate, -1));
});
return {
calendarDate,
onSelect: handleSelect,
onChangeMonth: handleChangeMonth,
onChangeTime: handleChangeTime,
onMoveForward: handleMoveForward,
onMoveBackward: handleMoveBackward
};
}
var _default = exports.default = useCalendarHandlers;