@@ -56,6 +56,23 @@ function Calendar(
56
56
)
57
57
numberOfMonths = 1 ;
58
58
59
+ if ( multiple || range || Array . isArray ( value ) ) {
60
+ if ( ! range && ! multiple ) multiple = true ;
61
+
62
+ timePicker = false ;
63
+ onlyTimePicker = false ;
64
+ }
65
+
66
+ format = getFormat (
67
+ timePicker ,
68
+ onlyTimePicker ,
69
+ onlyMonthPicker ,
70
+ onlyYearPicker ,
71
+ format ,
72
+ range ,
73
+ multiple
74
+ ) ;
75
+
59
76
let [ state , setState ] = useState ( { date : currentDate } ) ,
60
77
listeners = { } ,
61
78
ref = useRef ( { mustCallOnReady : true } ) ;
@@ -68,31 +85,19 @@ function Calendar(
68
85
if ( ! date ) return ;
69
86
if ( date . calendar !== calendar ) date . setCalendar ( calendar ) ;
70
87
if ( date . locale !== locale ) date . setLocale ( locale ) ;
71
- if ( date . _format !== $ format) date . setFormat ( $ format) ;
88
+ if ( date . _format !== format ) date . setFormat ( format ) ;
72
89
73
90
date . digits = digits ;
74
91
75
92
return date ;
76
93
}
77
94
78
- let $timePicker = timePicker ,
79
- $onlyTimePicker = onlyTimePicker ,
80
- $multiple = multiple ,
81
- $format = getFormat (
82
- timePicker ,
83
- onlyTimePicker ,
84
- onlyMonthPicker ,
85
- onlyYearPicker ,
86
- format ,
87
- range ,
88
- multiple
89
- ) ;
90
-
91
95
if ( ! value ) {
92
- if ( ! date ) date = new DateObject ( { calendar, locale, format : $format } ) ;
96
+ if ( ! date )
97
+ date = new DateObject ( { calendar, locale, format } ) . set ( { digits } ) ;
93
98
if ( initialValue ) selectedDate = undefined ;
94
99
} else {
95
- selectedDate = getSelectedDate ( value , calendar , locale , $ format) ;
100
+ selectedDate = getSelectedDate ( value , calendar , locale , format ) ;
96
101
97
102
if ( Array . isArray ( selectedDate ) ) {
98
103
if ( ! date ) date = checkDate ( new DateObject ( selectedDate [ 0 ] ) ) ;
@@ -114,10 +119,9 @@ function Calendar(
114
119
115
120
[ ] . concat ( selectedDate ) . forEach ( checkDate ) ;
116
121
117
- if ( $ multiple || range || Array . isArray ( value ) ) {
122
+ if ( multiple || range || Array . isArray ( value ) ) {
118
123
if ( ! selectedDate ) selectedDate = [ ] ;
119
124
if ( ! Array . isArray ( selectedDate ) ) selectedDate = [ selectedDate ] ;
120
- if ( ! range && ! $multiple ) $multiple = true ;
121
125
122
126
if ( range && selectedDate . length > 2 ) {
123
127
let lastItem = selectedDate [ selectedDate . length - 1 ] ;
@@ -126,15 +130,12 @@ function Calendar(
126
130
focused = lastItem ;
127
131
}
128
132
129
- if ( $ multiple && sort && ! mustSortDates ) {
133
+ if ( multiple && sort && ! mustSortDates ) {
130
134
mustSortDates = true ;
131
135
selectedDate . sort ( ( a , b ) => a - b ) ;
132
136
} else if ( range ) {
133
137
selectedDate . sort ( ( a , b ) => a - b ) ;
134
138
}
135
-
136
- $timePicker = false ;
137
- $onlyTimePicker = false ;
138
139
} else if ( Array . isArray ( selectedDate ) ) {
139
140
selectedDate = selectedDate [ selectedDate . length - 1 ] ;
140
141
}
@@ -143,18 +144,18 @@ function Calendar(
143
144
...state ,
144
145
date,
145
146
selectedDate,
146
- multiple : $multiple ,
147
+ multiple,
147
148
range,
148
- timePicker : $timePicker ,
149
- onlyTimePicker : $onlyTimePicker ,
149
+ timePicker,
150
+ onlyTimePicker,
150
151
onlyMonthPicker,
151
152
onlyYearPicker,
152
153
initialValue : state . initialValue || value ,
153
154
value,
154
155
focused,
155
156
calendar,
156
157
locale,
157
- format : $format ,
158
+ format,
158
159
mustSortDates,
159
160
year : state . year || date . year ,
160
161
today : state . today || new DateObject ( { calendar } ) ,
0 commit comments