UNPKG

rsuite

Version:

A suite of react components

37 lines 1.24 kB
'use client'; import { useMemo } from 'react'; import { useEventCallback } from "../../internals/hooks/index.js"; import { addMonths } from "../../internals/utils/date/index.js"; export function useCalendarHandlers({ index, calendarDateRange, onChangeCalendarMonth, onChangeCalendarTime, onSelect }) { const calendarDate = useMemo(() => calendarDateRange[index], [calendarDateRange, index]); const handleSelect = useEventCallback((date, event) => { onSelect?.(index, date, event); }); const handleChangeMonth = useEventCallback(nextPageDate => { onChangeCalendarMonth?.(index, nextPageDate); }); const handleChangeTime = useEventCallback(nextPageDate => { onChangeCalendarTime?.(index, nextPageDate); }); const handleMoveForward = useEventCallback(() => { onChangeCalendarMonth?.(index, addMonths(calendarDate, 1)); }); const handleMoveBackward = useEventCallback(() => { onChangeCalendarMonth?.(index, addMonths(calendarDate, -1)); }); return { calendarDate, onSelect: handleSelect, onChangeMonth: handleChangeMonth, onChangeTime: handleChangeTime, onMoveForward: handleMoveForward, onMoveBackward: handleMoveBackward }; } export default useCalendarHandlers;