UNPKG

birch-context-menu

Version:
50 lines (42 loc) 1.02 kB
export interface IMenuItem { label: string disabled: boolean } export interface ITextMenuItem extends IMenuItem { sublabel?: string onClick: () => void } export interface ISubMenuItem extends IMenuItem { submenu: IContextMenuData } export type IMenuItemGroup = Array<ITextMenuItem | ISubMenuItem> export type IContextMenuData = IMenuItemGroup[] // eslint-disable-next-line @typescript-eslint/no-empty-interface export interface IContextMenuProps { /** empty */ } export interface IContextMenuReactContext { showContextMenu: ( data: | (ITextMenuItem | ISubMenuItem)[][] | Promise<(ITextMenuItem | ISubMenuItem)[][]>, pos?: IPosition ) => { onShow: (cb: any) => void onClose: (cb: any) => void update: (newData: (ITextMenuItem | ISubMenuItem)[][]) => void close: () => void isActive: () => boolean } hideContextMenu: () => void pos: { x: number y: number } visible: boolean data: any[] } export interface IPosition { x: number y: number }