File tree Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Expand file tree Collapse file tree 2 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -269,7 +269,7 @@ function InternalRangePicker<DateType>(
269269 const lastOpenIdRef = React . useRef < number > ( ) ;
270270
271271 const onStartOpenChange = ( open : boolean ) => {
272- if ( ! open && innerValue && innerValue [ 0 ] ) {
272+ if ( ! open && selectedValues && selectedValues [ 0 ] ) {
273273 lastOpenIdRef . current = window . setTimeout ( ( ) => {
274274 if ( endPickerRef . current ) {
275275 endPickerRef . current ! . focus ( ) ;
Original file line number Diff line number Diff line change 11import React from 'react' ;
22import MockDate from 'mockdate' ;
3+ import { act } from 'react-dom/test-utils' ;
34import KeyCode from 'rc-util/lib/KeyCode' ;
45import { spyElementPrototypes } from 'rc-util/lib/test/domHook' ;
56import { Moment } from 'moment' ;
@@ -534,4 +535,31 @@ describe('Range', () => {
534535
535536 expect ( onChange ) . not . toHaveBeenCalled ( ) ;
536537 } ) ;
538+
539+ it ( 'should open last when first selected' , ( ) => {
540+ jest . useFakeTimers ( ) ;
541+ const onOpenChange = jest . fn ( ) ;
542+ const wrapper = mount ( < MomentRangePicker onOpenChange = { onOpenChange } /> ) ;
543+ expect ( wrapper . find ( 'PickerPanel' ) ) . toHaveLength ( 0 ) ;
544+
545+ wrapper . openPicker ( ) ;
546+ wrapper . selectCell ( 11 ) ;
547+ expect ( wrapper . find ( 'PickerPanel' ) ) . toHaveLength ( 1 ) ;
548+
549+ // Should open second one
550+ wrapper . closePicker ( ) ;
551+ expect ( onOpenChange ) . toHaveBeenCalled ( ) ;
552+
553+ act ( ( ) => {
554+ jest . runAllTimers ( ) ;
555+ } ) ;
556+ act ( ( ) => {
557+ wrapper . update ( ) ;
558+ } ) ;
559+ expect ( wrapper . find ( 'PickerPanel' ) ) . toHaveLength ( 2 ) ;
560+
561+ wrapper . unmount ( ) ;
562+
563+ jest . useRealTimers ( ) ;
564+ } ) ;
537565} ) ;
You can’t perform that action at this time.
0 commit comments