File tree Expand file tree Collapse file tree 3 files changed +15
-3
lines changed
compass-components/src/components Expand file tree Collapse file tree 3 files changed +15
-3
lines changed Original file line number Diff line number Diff line change 11import React , { useMemo , useRef } from 'react' ;
22import { Menu , MenuItem , MenuSeparator } from './leafygreen' ;
3- import { css } from '@leafygreen-ui/emotion' ;
3+ import { css , cx } from '@leafygreen-ui/emotion' ;
44import { spacing } from '@leafygreen-ui/tokens' ;
55
66import {
99 type ContextMenuItem ,
1010 type ContextMenuItemGroup ,
1111 type ContextMenuWrapperProps ,
12+ contextMenuClassName ,
1213} from '@mongodb-js/compass-context-menu' ;
1314
1415export type {
@@ -76,7 +77,7 @@ export function ContextMenu({ menu }: ContextMenuWrapperProps) {
7677 open = { menu . isOpen }
7778 setOpen = { menu . close }
7879 justify = "start"
79- className = { menuStyles }
80+ className = { cx ( menuStyles , contextMenuClassName ) }
8081 maxHeight = { Number . MAX_SAFE_INTEGER }
8182 >
8283 { itemGroups . map ( ( items : ContextMenuItemGroup , groupIndex : number ) => {
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import {
1212 getContextMenuContent ,
1313 type EnhancedMouseEvent ,
1414} from './context-menu-content' ;
15+ import { contextMenuClassName } from './consts' ;
1516
1617export const ContextMenuContext = createContext < ContextMenuContextType | null > (
1718 null
@@ -76,7 +77,16 @@ export function ContextMenuProvider({
7677
7778 document . addEventListener ( 'contextmenu' , handleContextMenu ) ;
7879 window . addEventListener ( 'resize' , handleClosingEvent ) ;
79- window . addEventListener ( 'scroll' , handleClosingEvent , { capture : true } ) ;
80+ window . addEventListener (
81+ 'scroll' ,
82+ ( e ) => {
83+ const isCompassContextMenu = (
84+ e . target as HTMLElement
85+ ) . classList . contains ( contextMenuClassName ) ;
86+ if ( ! isCompassContextMenu ) handleClosingEvent ( e ) ;
87+ } ,
88+ { capture : true }
89+ ) ;
8090
8191 return ( ) => {
8292 document . removeEventListener ( 'contextmenu' , handleContextMenu ) ;
Original file line number Diff line number Diff line change @@ -5,3 +5,4 @@ export type {
55 ContextMenuItemGroup ,
66 ContextMenuWrapperProps ,
77} from './types' ;
8+ export { contextMenuClassName } from './consts' ;
You can’t perform that action at this time.
0 commit comments