@@ -365,6 +365,11 @@ export const useMenu = <T extends HTMLElement = HTMLElement, M extends HTMLEleme
365365 ]
366366 ) ;
367367
368+ const handleMenuClick = useCallback ( ( event : React . MouseEvent ) => {
369+ // Prevent propagation to container; for example, accordion header expand/collapse
370+ event . stopPropagation ( ) ;
371+ } , [ ] ) ;
372+
368373 const handleMenuKeyDown = useCallback (
369374 ( event : KeyboardEvent ) => {
370375 const { key } = event ;
@@ -776,7 +781,7 @@ export const useMenu = <T extends HTMLElement = HTMLElement, M extends HTMLEleme
776781 ) ;
777782
778783 const getMenuProps = useCallback < IUseMenuReturnValue [ 'getMenuProps' ] > (
779- ( { role = 'menu' , onBlur, onMouseLeave, ...other } = { } ) => ( {
784+ ( { role = 'menu' , onBlur, onClick , onMouseLeave, ...other } = { } ) => ( {
780785 ...other ,
781786 ...getGroupProps ( {
782787 onMouseLeave : composeEventHandlers ( onMouseLeave , handleMenuMouseLeave )
@@ -787,9 +792,10 @@ export const useMenu = <T extends HTMLElement = HTMLElement, M extends HTMLEleme
787792 tabIndex : - 1 ,
788793 role : role === null ? undefined : role ,
789794 ref : menuRef as any ,
790- onBlur : composeEventHandlers ( onBlur , handleBlur )
795+ onBlur : composeEventHandlers ( onBlur , handleBlur ) ,
796+ onClick : composeEventHandlers ( onClick , handleMenuClick )
791797 } ) ,
792- [ getGroupProps , handleBlur , handleMenuMouseLeave , menuRef , triggerId ]
798+ [ getGroupProps , handleBlur , handleMenuClick , handleMenuMouseLeave , menuRef , triggerId ]
793799 ) ;
794800
795801 const getSeparatorProps = useCallback < IUseMenuReturnValue [ 'getSeparatorProps' ] > (
0 commit comments