@@ -252,7 +252,6 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
252
252
( ! isEqual ( generateConfig , getIndexValue ( mergedValue , 0 ) , startValue ) ||
253
253
! isEqual ( generateConfig , getIndexValue ( mergedValue , 1 ) , endValue ) )
254
254
) {
255
- console . warn ( 'trigger change!!!!' ) ;
256
255
onChange ( values , [
257
256
startValue
258
257
? generateConfig . locale . format (
@@ -268,13 +267,19 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
268
267
}
269
268
} ;
270
269
271
- const triggerOpen = ( newOpen : boolean , index : 0 | 1 ) => {
270
+ const triggerOpen = (
271
+ newOpen : boolean ,
272
+ index : 0 | 1 ,
273
+ preventChangeEvent : boolean = false ,
274
+ ) => {
272
275
if ( newOpen ) {
273
276
setActivePickerIndex ( index ) ;
274
277
triggerInnerOpen ( newOpen ) ;
275
278
} else if ( activePickerIndex === index ) {
276
279
triggerInnerOpen ( newOpen ) ;
277
- triggerChange ( selectedValue ) ;
280
+ if ( ! preventChangeEvent ) {
281
+ triggerChange ( selectedValue ) ;
282
+ }
278
283
}
279
284
} ;
280
285
@@ -314,26 +319,25 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
314
319
}
315
320
} ;
316
321
317
- const [ startText , triggerStartTextChange ] = useTextValueMapping < DateType > ( {
322
+ const [
323
+ startText ,
324
+ triggerStartTextChange ,
325
+ resetStartText ,
326
+ ] = useTextValueMapping < DateType > ( {
318
327
valueTexts : startValueTexts ,
319
328
onTextChange : newText => onTextChange ( newText , 0 ) ,
320
329
} ) ;
321
330
322
- const [ endText , triggerEndTextChange ] = useTextValueMapping < DateType > ( {
331
+ const [ endText , triggerEndTextChange , resetEndText ] = useTextValueMapping <
332
+ DateType
333
+ > ( {
323
334
valueTexts : endValueTexts ,
324
335
onTextChange : newText => onTextChange ( newText , 1 ) ,
325
336
} ) ;
326
337
327
338
// ============================= Input =============================
328
339
const sharedInputHookProps = {
329
340
forwardKeyDown,
330
- onSubmit : ( ) => {
331
- triggerChange ( selectedValue ) ;
332
- } ,
333
- onCancel : ( ) => {
334
- triggerChange ( mergedValue ) ;
335
- setSelectedValue ( mergedValue ) ;
336
- } ,
337
341
onBlur,
338
342
} ;
339
343
@@ -362,6 +366,16 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
362
366
passOnFocus ( e ) ;
363
367
} ,
364
368
triggerOpen : newOpen => triggerOpen ( newOpen , 0 ) ,
369
+ onSubmit : ( ) => {
370
+ triggerChange ( selectedValue ) ;
371
+ triggerOpen ( false , 0 , true ) ;
372
+ resetStartText ( ) ;
373
+ } ,
374
+ onCancel : ( ) => {
375
+ triggerOpen ( false , 0 , true ) ;
376
+ setSelectedValue ( mergedValue ) ;
377
+ resetStartText ( ) ;
378
+ } ,
365
379
} ) ;
366
380
367
381
const [
@@ -383,6 +397,16 @@ function InnerRangePicker<DateType>(props: RangePickerProps<DateType>) {
383
397
passOnFocus ( e ) ;
384
398
} ,
385
399
triggerOpen : newOpen => triggerOpen ( newOpen , 1 ) ,
400
+ onSubmit : ( ) => {
401
+ triggerChange ( selectedValue ) ;
402
+ triggerOpen ( false , 1 , true ) ;
403
+ resetEndText ( ) ;
404
+ } ,
405
+ onCancel : ( ) => {
406
+ triggerOpen ( false , 1 , true ) ;
407
+ setSelectedValue ( mergedValue ) ;
408
+ resetEndText ( ) ;
409
+ } ,
386
410
} ) ;
387
411
388
412
// ============================= Sync ==============================
0 commit comments