@@ -16,7 +16,7 @@ import {AriaComboBoxProps} from '@react-types/combobox';
1616import { ariaHideOutside } from '@react-aria/overlays' ;
1717import { AriaListBoxOptions , getItemId , listData } from '@react-aria/listbox' ;
1818import { BaseEvent , DOMAttributes , KeyboardDelegate , LayoutDelegate , PressEvent , RefObject , RouterOptions , ValidationResult } from '@react-types/shared' ;
19- import { chain , getActiveElement , getOwnerDocument , isAppleDevice , mergeProps , useLabels , useRouter , useUpdateEffect } from '@react-aria/utils' ;
19+ import { chain , getActiveElement , getOwnerDocument , isAppleDevice , mergeProps , useEvent , useLabels , useRouter , useUpdateEffect } from '@react-aria/utils' ;
2020import { ComboBoxState } from '@react-stately/combobox' ;
2121import { dispatchVirtualFocus } from '@react-aria/focus' ;
2222import { FocusEvent , InputHTMLAttributes , KeyboardEvent , TouchEvent , useEffect , useMemo , useRef } from 'react' ;
@@ -354,6 +354,10 @@ export function useComboBox<T>(props: AriaComboBoxOptions<T>, state: ComboBoxSta
354354 }
355355 } , [ focusedItem ] ) ;
356356
357+ useEvent ( listBoxRef , 'react-aria-item-action' , state . isOpen ? ( ) => {
358+ state . close ( ) ;
359+ } : undefined ) ;
360+
357361 return {
358362 labelProps,
359363 buttonProps : {
@@ -383,7 +387,8 @@ export function useComboBox<T>(props: AriaComboBoxOptions<T>, state: ComboBoxSta
383387 shouldUseVirtualFocus : true ,
384388 shouldSelectOnPressUp : true ,
385389 shouldFocusOnHover : true ,
386- linkBehavior : 'selection' as const
390+ linkBehavior : 'selection' as const ,
391+ [ 'UNSTABLE_itemBehavior' ] : 'action'
387392 } ) ,
388393 descriptionProps,
389394 errorMessageProps,
0 commit comments