@@ -7,6 +7,10 @@ import { DropDownMenuBase, MenuDirection } from './drop_down_menu_base';
77export type MenuOffsetDirection = 'left' | 'right' ;
88
99export interface ContextMenuProps {
10+ /** Whether the menu should be visible */
11+ showMenu : boolean ;
12+ /** Callback to toggle showMenu */
13+ onToggleMenuHandler : ( showMenu : boolean ) => void ;
1014 /** Width of the menu in pixels */
1115 menuWidth : number ;
1216 /** Direction to offset the menu: 'left' | 'right' */
@@ -21,7 +25,6 @@ export interface ContextMenuProps {
2125
2226export interface ContextMenuState {
2327 menuOffset : number ;
24- showMenu : boolean ;
2528}
2629
2730const menuOffsetDefault = 30 ;
@@ -58,7 +61,6 @@ export class ContextMenu extends React.Component<ContextMenuProps, ContextMenuSt
5861
5962 state = {
6063 menuOffset : null ,
61- showMenu : false ,
6264 } ;
6365
6466 constructor ( props : ContextMenuProps ) {
@@ -69,7 +71,8 @@ export class ContextMenu extends React.Component<ContextMenuProps, ContextMenuSt
6971 private _menuRef ;
7072
7173 private _onToggleMenuHandler ( showMenu : boolean ) : void {
72- this . setState ( { showMenu } ) ;
74+ const { onToggleMenuHandler } = this . props ;
75+ onToggleMenuHandler ( showMenu ) ;
7376 this . _setMenuOffset ( ) ;
7477 }
7578
@@ -113,9 +116,9 @@ export class ContextMenu extends React.Component<ContextMenuProps, ContextMenuSt
113116
114117 render ( ) : JSX . Element {
115118 const {
116- menuWidth, menuOffsetDirection, menuDirection, positionMenuInPanel, children,
119+ menuWidth, menuOffsetDirection, menuDirection, positionMenuInPanel, showMenu , children,
117120 } = this . props ;
118- const { menuOffset, showMenu } = this . state ;
121+ const { menuOffset } = this . state ;
119122
120123 const classes = classNames (
121124 'context-menu' ,
0 commit comments