From 8c8b473e74b2dd75be2a3eceb99d0407ab574e38 Mon Sep 17 00:00:00 2001 From: MAXIME BARRY Date: Wed, 7 May 2025 11:20:26 +0200 Subject: [PATCH 1/2] fix: trigger month change when pressing the arrows in the calendar --- src/datetime-picker.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/datetime-picker.tsx b/src/datetime-picker.tsx index 8deb622..74254a6 100644 --- a/src/datetime-picker.tsx +++ b/src/datetime-picker.tsx @@ -561,12 +561,13 @@ const DateTimePicker = ( const onChangeMonth = useCallback( (value: number) => { const newDate = dayjs(stateRef.current.currentDate).add(value, 'month'); + onSelectMonth(newDate.month()); dispatch({ type: CalendarActionKind.CHANGE_CURRENT_DATE, payload: dayjs(newDate), }); }, - [stateRef, dispatch] + [stateRef, dispatch, onSelectMonth] ); const onChangeYear = useCallback( From 242db99dde23f8fe1b4d95bbb6673f127b4e87c0 Mon Sep 17 00:00:00 2001 From: MAXIME BARRY Date: Wed, 13 Aug 2025 14:14:03 +0200 Subject: [PATCH 2/2] fix: trigger year change when pressing the arrows in the calendar --- src/datetime-picker.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/datetime-picker.tsx b/src/datetime-picker.tsx index 74254a6..d0f7014 100644 --- a/src/datetime-picker.tsx +++ b/src/datetime-picker.tsx @@ -560,14 +560,24 @@ const DateTimePicker = ( const onChangeMonth = useCallback( (value: number) => { - const newDate = dayjs(stateRef.current.currentDate).add(value, 'month'); + const oldDate = dayjs(stateRef.current.currentDate); + const newDate = oldDate.add(value, 'month'); + onSelectMonth(newDate.month()); + + if ( + (oldDate.month() === 0 && newDate.month() === 11) || + (oldDate.month() === 11 && newDate.month() === 0) + ) { + onSelectYear(newDate.year()); + } + dispatch({ type: CalendarActionKind.CHANGE_CURRENT_DATE, payload: dayjs(newDate), }); }, - [stateRef, dispatch, onSelectMonth] + [stateRef, dispatch, onSelectMonth, onSelectYear] ); const onChangeYear = useCallback(