@@ -593,7 +593,7 @@ class Dropdown extends AutoControlledComponent<Extendable<DropdownProps>, Dropdo
593
593
}
594
594
595
595
private handleSearchQueryChange = ( searchQuery : string ) => {
596
- this . setStateAndInvokeHandler ( { searchQuery } , 'onSearchQueryChange' )
596
+ this . trySetStateAndInvokeHandler ( 'onSearchQueryChange' , null , { searchQuery } )
597
597
}
598
598
599
599
private handleDownshiftStateChanges = (
@@ -614,7 +614,7 @@ class Dropdown extends AutoControlledComponent<Extendable<DropdownProps>, Dropdo
614
614
615
615
private handleStateChange = ( changes : StateChangeOptions < ShorthandValue > ) => {
616
616
if ( changes . isOpen !== undefined && changes . isOpen !== this . state . open ) {
617
- this . setStateAndInvokeHandler ( { open : changes . isOpen } , 'onOpenChange' )
617
+ this . trySetStateAndInvokeHandler ( 'onOpenChange' , null , { open : changes . isOpen } )
618
618
}
619
619
620
620
if ( changes . isOpen && ! this . props . search ) {
@@ -857,13 +857,10 @@ class Dropdown extends AutoControlledComponent<Extendable<DropdownProps>, Dropdo
857
857
private handleSelectedChange = ( item : ShorthandValue ) => {
858
858
const { items, multiple, getA11ySelectionMessage } = this . props
859
859
860
- this . setStateAndInvokeHandler (
861
- {
862
- value : multiple ? [ ...( this . state . value as ShorthandCollection ) , item ] : item ,
863
- searchQuery : this . getSelectedItemAsString ( item ) ,
864
- } ,
865
- 'onSelectedChange' ,
866
- )
860
+ this . trySetStateAndInvokeHandler ( 'onSelectedChange' , null , {
861
+ value : multiple ? [ ...( this . state . value as ShorthandCollection ) , item ] : item ,
862
+ searchQuery : this . getSelectedItemAsString ( item ) ,
863
+ } )
867
864
868
865
if ( ! multiple ) {
869
866
this . setState ( { defaultHighlightedIndex : items . indexOf ( item ) } )
@@ -958,17 +955,21 @@ class Dropdown extends AutoControlledComponent<Extendable<DropdownProps>, Dropdo
958
955
this . setA11yStatus ( getA11ySelectionMessage . onRemove ( poppedItem ) )
959
956
}
960
957
961
- this . setStateAndInvokeHandler ( { value } , 'onSelectedChange' )
958
+ this . trySetStateAndInvokeHandler ( 'onSelectedChange' , null , { value } )
962
959
}
963
960
964
961
/**
965
962
* Calls trySetState (for autoControlledProps) and invokes event handler exposed to user.
966
963
* We don't have the event object for most events coming from Downshift se we send an empty event
967
964
* because we want to keep the event handling interface
968
965
*/
969
- private setStateAndInvokeHandler = ( newState : Partial < DropdownState > , eventName : string ) => {
966
+ private trySetStateAndInvokeHandler = (
967
+ handlerName : keyof DropdownProps ,
968
+ event : React . SyntheticEvent < HTMLElement > ,
969
+ newState : Partial < DropdownState > ,
970
+ ) => {
970
971
this . trySetState ( newState )
971
- _ . invoke ( this . props , eventName , { } , { ...this . props , ...newState } )
972
+ _ . invoke ( this . props , handlerName , event , { ...this . props , ...newState } )
972
973
}
973
974
974
975
private tryFocusTriggerButton = ( ) => {
0 commit comments