This repository was archived by the owner on Jun 28, 2026. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -42,10 +42,12 @@ export const Menubar = React.memo(
4242 const [ bindOutsideClickListener , unbindOutsideClickListener ] = useEventListener ( {
4343 type : 'click' ,
4444 listener : ( event ) => {
45- const isOutsideButton = menuButtonRef . current && ! menuButtonRef . current . contains ( event . target ) ;
45+ if ( isOutsideClicked ( event ) ) {
46+ const isOutsideContainer = elementRef . current && ! elementRef . current . contains ( event . target ) ;
4647
47- if ( isOutsideButton ) {
48- hide ( ) ;
48+ if ( isOutsideContainer ) {
49+ hide ( ) ;
50+ }
4951 }
5052 } ,
5153 options : { capture : true }
@@ -98,6 +100,10 @@ export const Menubar = React.memo(
98100 ( event . code === 'Enter' || event . code === 'NumpadEnter' || event . code === 'Space' ) && toggle ( event ) ;
99101 } ;
100102
103+ const isOutsideClicked = ( event ) => {
104+ return rootMenuRef . current !== event . target && ! rootMenuRef . current . contains ( event . target ) && menuButtonRef . current !== event . target && ! menuButtonRef . current . contains ( event . target ) ;
105+ } ;
106+
101107 const getItemProp = ( item , name ) => {
102108 return item ? ObjectUtils . getItemValue ( item [ name ] ) : undefined ;
103109 } ;
You can’t perform that action at this time.
0 commit comments