diff --git a/src/components/Calendar/hooks/useCalendarEventHandlers.ts b/src/components/Calendar/hooks/useCalendarEventHandlers.ts new file mode 100644 index 0000000..f44cf38 --- /dev/null +++ b/src/components/Calendar/hooks/useCalendarEventHandlers.ts @@ -0,0 +1,48 @@ +import { useCallback } from "react"; +import { CalendarApi } from "@fullcalendar/core"; +import { + createEventHandlers, + EventHandlersProps, +} from "../handlers/eventHandlers"; + +export const useCalendarEventHandlers = (props: EventHandlersProps) => { + const eventHandlers = createEventHandlers(props); + + return { + handleDateSelect: useCallback(eventHandlers.handleDateSelect, [ + props.setSelectedRange, + props.setAnchorEl, + ]), + handleClosePopover: useCallback(eventHandlers.handleClosePopover, [ + props.calendarRef, + props.setAnchorEl, + props.setSelectedRange, + props.selectedCalendars, + props.tempcalendars, + props.calendarRange, + props.dispatch, + ]), + handleCloseEventDisplay: useCallback( + eventHandlers.handleCloseEventDisplay, + [props.setAnchorPosition, props.setOpenEventDisplay] + ), + handleMonthUp: useCallback(eventHandlers.handleMonthUp, []), + handleMonthDown: useCallback(eventHandlers.handleMonthDown, []), + handleEventClick: useCallback(eventHandlers.handleEventClick, [ + props.setOpenEventDisplay, + props.setAnchorPosition, + props.setEventDisplayedId, + props.setEventDisplayedCalId, + props.setEventDisplayedTemp, + ]), + handleEventAllow: useCallback(eventHandlers.handleEventAllow, []), + handleEventDrop: useCallback(eventHandlers.handleEventDrop, [ + props.calendars, + props.dispatch, + ]), + handleEventResize: useCallback(eventHandlers.handleEventResize, [ + props.calendars, + props.dispatch, + ]), + }; +}; diff --git a/src/components/Calendar/hooks/useCalendarViewHandlers.ts b/src/components/Calendar/hooks/useCalendarViewHandlers.ts new file mode 100644 index 0000000..cb00b62 --- /dev/null +++ b/src/components/Calendar/hooks/useCalendarViewHandlers.ts @@ -0,0 +1,32 @@ +import { useCallback } from "react"; +import { CalendarApi } from "@fullcalendar/core"; +import { + createViewHandlers, + ViewHandlersProps, +} from "../handlers/viewHandlers"; + +export const useCalendarViewHandlers = (props: ViewHandlersProps) => { + const viewHandlers = createViewHandlers(props); + + return { + handleDayHeaderDidMount: useCallback(viewHandlers.handleDayHeaderDidMount, [ + props.calendarRef, + props.setSelectedDate, + props.setSelectedMiniDate, + props.onViewChange, + ]), + handleDayHeaderWillUnmount: useCallback( + viewHandlers.handleDayHeaderWillUnmount, + [] + ), + handleViewDidMount: useCallback(viewHandlers.handleViewDidMount, []), + handleViewWillUnmount: useCallback(viewHandlers.handleViewWillUnmount, []), + handleEventContent: useCallback(viewHandlers.handleEventContent, [ + props.calendars, + props.tempcalendars, + ]), + handleEventDidMount: useCallback(viewHandlers.handleEventDidMount, [ + props.calendars, + ]), + }; +};