@@ -4,7 +4,6 @@ import omit from 'rc-util/lib/omit';
4
4
import pickAttrs from 'rc-util/lib/pickAttrs' ;
5
5
import warning from 'rc-util/lib/warning' ;
6
6
import * as React from 'react' ;
7
- import useLocale from '../hooks/useLocale' ;
8
7
import useTimeConfig from '../hooks/useTimeConfig' ;
9
8
import type {
10
9
BaseInfo ,
@@ -131,16 +130,28 @@ function RangePicker<DateType extends object = any>(
131
130
props : RangePickerProps < DateType > ,
132
131
ref : React . Ref < PickerRef > ,
133
132
) {
133
+ // ========================= Prop =========================
134
+ const filledProps = useFilledProps ( props , ( ) => {
135
+ const { disabled, allowEmpty } = props ;
136
+
137
+ const mergedDisabled = separateConfig ( disabled , false ) ;
138
+ const mergedAllowEmpty = separateConfig ( allowEmpty , false ) ;
139
+
140
+ return {
141
+ disabled : mergedDisabled ,
142
+ allowEmpty : mergedAllowEmpty ,
143
+ } ;
144
+ } ) ;
145
+
134
146
const {
135
147
// Style
136
- prefixCls = 'rc-picker' ,
137
- styles = { } ,
138
- classNames = { } ,
148
+ prefixCls,
149
+ styles,
150
+ classNames,
139
151
140
152
// Value
141
153
defaultValue,
142
154
value,
143
- order = true ,
144
155
needConfirm,
145
156
146
157
// Disabled
@@ -160,7 +171,7 @@ function RangePicker<DateType extends object = any>(
160
171
// Picker
161
172
locale,
162
173
generateConfig,
163
- picker = 'date' ,
174
+ picker,
164
175
showNow,
165
176
showToday,
166
177
@@ -197,34 +208,21 @@ function RangePicker<DateType extends object = any>(
197
208
clearIcon,
198
209
199
210
// Render
200
- components = { } ,
211
+ components,
201
212
cellRender,
202
213
dateRender,
203
214
monthCellRender,
204
215
205
216
// Native
206
217
onClick,
207
- } = props ;
218
+ } = filledProps ;
208
219
209
220
// ========================= Refs =========================
210
221
const selectorRef = usePickerRef ( ref ) ;
211
222
212
- // ======================== Locale ========================
213
- const filledLocale = useLocale ( locale ) ;
214
-
215
- // =================== Disabled & Empty ===================
216
- const mergedDisabled = separateConfig ( disabled , false ) ;
217
- const mergedAllowEmpty = separateConfig ( allowEmpty , false ) ;
218
-
219
223
// ========================= Icon =========================
220
224
const mergedClearIcon = useClearIcon ( prefixCls , allowClear , clearIcon ) ;
221
225
222
- // ========================= Prop =========================
223
- const filledProps = useFilledProps ( props , {
224
- allowEmpty : mergedAllowEmpty ,
225
- order,
226
- } ) ;
227
-
228
226
// ======================= ShowTime =======================
229
227
const mergedShowTime = useTimeConfig ( filledProps ) ;
230
228
@@ -235,7 +233,7 @@ function RangePicker<DateType extends object = any>(
235
233
236
234
const triggerOpen : OnOpenChange = ( nextOpen , config ?: OpenConfig ) => {
237
235
// No need to open if all disabled
238
- if ( mergedDisabled . some ( ( fieldDisabled ) => ! fieldDisabled ) || ! nextOpen ) {
236
+ if ( disabled . some ( ( fieldDisabled ) => ! fieldDisabled ) || ! nextOpen ) {
239
237
setMergeOpen ( nextOpen , config ) ;
240
238
}
241
239
} ;
@@ -249,7 +247,7 @@ function RangePicker<DateType extends object = any>(
249
247
const mergedNeedConfirm = needConfirm ?? complexPicker ;
250
248
251
249
// ======================== Format ========================
252
- const [ formatList , maskFormat ] = useFieldFormat ( internalPicker , filledLocale , format ) ;
250
+ const [ formatList , maskFormat ] = useFieldFormat ( internalPicker , locale , format ) ;
253
251
254
252
// ======================== Values ========================
255
253
const [ mergedValue , setInnerValue , getCalendarValue , triggerCalendarChange ] = useInnerValue (
@@ -272,7 +270,7 @@ function RangePicker<DateType extends object = any>(
272
270
lastOperation ,
273
271
nextActiveIndex ,
274
272
activeIndexList ,
275
- ] = useRangeActive ( mergedOpen , mergedDisabled , mergedAllowEmpty ) ;
273
+ ] = useRangeActive ( mergedOpen , disabled , allowEmpty ) ;
276
274
277
275
const onSharedFocus = ( event : React . FocusEvent < HTMLElement > , index ?: number ) => {
278
276
triggerFocus ( true ) ;
@@ -339,7 +337,7 @@ function RangePicker<DateType extends object = any>(
339
337
setInnerValue ,
340
338
getCalendarValue ,
341
339
triggerCalendarChange ,
342
- mergedDisabled ,
340
+ disabled ,
343
341
formatList ,
344
342
focused ,
345
343
mergedOpen ,
@@ -349,10 +347,10 @@ function RangePicker<DateType extends object = any>(
349
347
// ===================== DisabledDate =====================
350
348
const mergedDisabledDate = useRangeDisabledDate (
351
349
calendarValue ,
352
- mergedDisabled ,
350
+ disabled ,
353
351
activeIndexList ,
354
352
generateConfig ,
355
- filledLocale ,
353
+ locale ,
356
354
disabledBoundaryDate ,
357
355
// minDate,
358
356
// maxDate,
@@ -386,7 +384,7 @@ function RangePicker<DateType extends object = any>(
386
384
}
387
385
388
386
// Not allow empty
389
- if ( ! mergedAllowEmpty [ index ] && ! current ) {
387
+ if ( ! allowEmpty [ index ] && ! current ) {
390
388
return true ;
391
389
}
392
390
@@ -397,12 +395,12 @@ function RangePicker<DateType extends object = any>(
397
395
398
396
return false ;
399
397
} ) as [ boolean , boolean ] ;
400
- } , [ calendarValue , fieldsInvalidates , isInvalidateDate , mergedAllowEmpty ] ) ;
398
+ } , [ calendarValue , fieldsInvalidates , isInvalidateDate , allowEmpty ] ) ;
401
399
402
400
// ===================== Picker Value =====================
403
401
const [ currentPickerValue , setCurrentPickerValue ] = useRangePickerValue (
404
402
generateConfig ,
405
- filledLocale ,
403
+ locale ,
406
404
calendarValue ,
407
405
mergedOpen ,
408
406
activeIndex ,
@@ -473,7 +471,7 @@ function RangePicker<DateType extends object = any>(
473
471
const onSelectorClick : React . MouseEventHandler < HTMLDivElement > = ( event ) => {
474
472
if ( ! selectorRef . current . nativeElement . contains ( document . activeElement ) ) {
475
473
// Click to focus the enabled input
476
- const enabledIndex = mergedDisabled . findIndex ( ( d ) => ! d ) ;
474
+ const enabledIndex = disabled . findIndex ( ( d ) => ! d ) ;
477
475
if ( enabledIndex >= 0 ) {
478
476
selectorRef . current . focus ( enabledIndex ) ;
479
477
}
@@ -675,12 +673,12 @@ function RangePicker<DateType extends object = any>(
675
673
const context = React . useMemo (
676
674
( ) => ( {
677
675
prefixCls,
678
- locale : filledLocale ,
676
+ locale,
679
677
generateConfig,
680
678
button : components . button ,
681
679
input : components . input ,
682
680
} ) ,
683
- [ prefixCls , filledLocale , generateConfig , components . button , components . input ] ,
681
+ [ prefixCls , locale , generateConfig , components . button , components . input ] ,
684
682
) ;
685
683
686
684
// ======================== Effect ========================
@@ -722,8 +720,8 @@ function RangePicker<DateType extends object = any>(
722
720
} ;
723
721
724
722
if (
725
- mergedDisabled . some (
726
- ( fieldDisabled , index ) => fieldDisabled && isIndexEmpty ( index ) && ! mergedAllowEmpty [ index ] ,
723
+ disabled . some (
724
+ ( fieldDisabled , index ) => fieldDisabled && isIndexEmpty ( index ) && ! allowEmpty [ index ] ,
727
725
)
728
726
) {
729
727
warning (
@@ -777,7 +775,7 @@ function RangePicker<DateType extends object = any>(
777
775
format = { formatList }
778
776
inputReadOnly = { mergedInputReadOnly }
779
777
// Disabled
780
- disabled = { mergedDisabled }
778
+ disabled = { disabled }
781
779
// Open
782
780
onOpenChange = { triggerOpen }
783
781
// Click
0 commit comments