@@ -2,7 +2,7 @@ import type { FC } from "react";
2
2
import { twMerge } from "tailwind-merge" ;
3
3
import { mergeDeep } from "../../../helpers/merge-deep" ;
4
4
import { useDatePickerContext } from "../DatepickerContext" ;
5
- import { getFormattedDate , isDateEqual , isDateInRange , Views } from "../helpers" ;
5
+ import { getFormattedDate , isDateInRange , isMonthEqual , Views } from "../helpers" ;
6
6
7
7
export interface FlowbiteDatepickerViewsMonthsTheme {
8
8
items : {
@@ -20,27 +20,19 @@ export interface DatepickerViewsMonthsProps {
20
20
}
21
21
22
22
export const DatepickerViewsMonth : FC < DatepickerViewsMonthsProps > = ( { theme : customTheme = { } } ) => {
23
- const {
24
- theme : rootTheme ,
25
- minDate,
26
- maxDate,
27
- selectedDate,
28
- viewDate,
29
- language,
30
- setViewDate,
31
- setView,
32
- } = useDatePickerContext ( ) ;
23
+ const { theme : rootTheme , minDate, maxDate, selectedDate, language, setViewDate, setView } = useDatePickerContext ( ) ;
33
24
34
25
const theme = mergeDeep ( rootTheme . views . months , customTheme ) ;
35
26
36
27
return (
37
28
< div className = { theme . items . base } >
38
29
{ [ ...Array ( 12 ) ] . map ( ( _month , index ) => {
39
- const newDate = new Date ( viewDate . getTime ( ) ) ;
40
- newDate . setMonth ( index ) ;
30
+ const newDate = new Date ( ) ;
31
+ // setting day to 1 to avoid overflow issues
32
+ newDate . setMonth ( index , 1 ) ;
41
33
const month = getFormattedDate ( language , newDate , { month : "short" } ) ;
42
34
43
- const isSelected = isDateEqual ( selectedDate , newDate ) ;
35
+ const isSelected = isMonthEqual ( selectedDate , newDate ) ;
44
36
const isDisabled = ! isDateInRange ( newDate , minDate , maxDate ) ;
45
37
46
38
return (
0 commit comments