@@ -269,6 +269,37 @@ function DateRangePicker(props) {
269
269
setPreview ( null ) ;
270
270
} ;
271
271
272
+ const onReset = ( presetRange ) => {
273
+ let newStartDate ;
274
+ let newEndDate ;
275
+
276
+ if ( presetRange ) {
277
+ newStartDate = presetRange . startDate ;
278
+ newEndDate = presetRange . endDate ;
279
+ }
280
+
281
+ setFocusedRange ( [ 0 , 0 ] ) ;
282
+
283
+ setErrors ( {
284
+ startDate : "" ,
285
+ endDate : "" ,
286
+ } ) ;
287
+
288
+ setRangeString ( {
289
+ startDateString : newStartDate
290
+ ? moment ( newStartDate ) . format ( "MMM D, YYYY" )
291
+ : "" ,
292
+ endDateString : newEndDate ? moment ( newEndDate ) . format ( "MMM D, YYYY" ) : "" ,
293
+ } ) ;
294
+
295
+ onChange ( {
296
+ startDate : newStartDate ? moment ( newStartDate ) : null ,
297
+ endDate : newEndDate ? moment ( newEndDate ) : null ,
298
+ } ) ;
299
+
300
+ setIsComponentVisible ( false ) ;
301
+ }
302
+
272
303
/**
273
304
* Event handler on date selection changes
274
305
* @param {Object } newRange nnew range that has endDate and startDate data
@@ -350,13 +381,13 @@ function DateRangePicker(props) {
350
381
// - set the active range's background to transparent color
351
382
// to prevent the calendar auto focusing on the day of today by default when no
352
383
// start date nor end date are set.
353
- // - does not set focus on the empty selection range when mouse leaves.
384
+ // - does not set focus on the selection range when mouse leaves.
354
385
// ---
355
386
356
387
// setActiveDate(null);
357
- if ( range . startDate || range . endDate ) {
358
- setFocusedRange ( [ 0 , focusedRange [ 1 ] ] ) ;
359
- }
388
+ // if (range.startDate || range.endDate) {
389
+ // setFocusedRange([0, focusedRange[1]]);
390
+ // }
360
391
return ;
361
392
}
362
393
@@ -558,9 +589,13 @@ function DateRangePicker(props) {
558
589
< ReactDateRangePicker
559
590
focusedRange = { focusedRange }
560
591
onRangeFocusChange = { setFocusedRange }
561
- onChange = { ( item ) =>
562
- onDateRangePickerChange ( item . selection || item . active )
563
- }
592
+ onChange = { ( item ) => {
593
+ if ( ! preview ) {
594
+ onReset ( item . selection || item . active ) ;
595
+ } else {
596
+ onDateRangePickerChange ( item . selection || item . active ) ;
597
+ }
598
+ } }
564
599
dateDisplayFormat = "MM/dd/yyyy"
565
600
showDateDisplay = { false }
566
601
staticRanges = { createStaticRanges ( ) }
@@ -578,12 +613,7 @@ function DateRangePicker(props) {
578
613
< button
579
614
type = "button"
580
615
styleName = "calendar-button"
581
- onClick = { ( ) => {
582
- onDateRangePickerChange ( {
583
- startDate : null ,
584
- endDate : null ,
585
- } ) ;
586
- } }
616
+ onClick = { onReset }
587
617
>
588
618
Reset
589
619
</ button >
0 commit comments