@firefox-devtools/react-contextmenu
Version:
Context Menu implemented in React
91 lines (83 loc) • 3.5 kB
TypeScript
declare module "@firefox-devtools/react-contextmenu" {
import * as React from "react";
export interface ContextMenuProps {
id: string,
data?: any,
className?: string,
hideOnLeave?: boolean,
rtl?: boolean,
onHide?: {(event: any): void},
onMouseLeave?: {(event: React.MouseEvent<HTMLElement>, data: Object, target: HTMLElement): void} | Function,
onShow?: {(event: any): void},
preventHideOnContextMenu?: boolean,
preventHideOnResize?: boolean,
preventHideOnScroll?: boolean,
style?: React.CSSProperties,
children?: React.ReactNode,
}
export interface ContextMenuTriggerProps {
id: string,
attributes?: React.HTMLAttributes<any>,
collect?: {(data: any): any},
disable?: boolean,
holdToDisplay?: number,
posX?: number,
posY?: number,
renderTag?: React.ElementType,
triggerOnLeftClick?: boolean,
disableIfShiftIsPressed?: boolean,
[key: string]: any,
children?: React.ReactNode,
}
export interface MenuItemProps {
attributes?: React.HTMLAttributes<HTMLDivElement>,
className?: string;
data?: Object,
disabled?: boolean,
divider?: boolean,
preventClose?: boolean,
onClick?: {(event: React.TouchEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>, data: Object, target: HTMLElement): void} | Function,
onMouseLeave?: {(event: React.MouseEvent<HTMLDivElement>): void} | Function,
onMouseMove?: {(event: React.MouseEvent<HTMLDivElement>): void} | Function,
role?: string,
selected?: boolean,
children?: React.ReactNode,
}
export interface SubMenuProps {
title: React.ReactElement<any> | string | number,
attributes?: React.HTMLAttributes<HTMLDivElement>,
className?: string,
disabled?: boolean,
hoverDelay?: number,
rtl?: boolean,
selected?: boolean,
onMouseMove?: {(event: React.MouseEvent<HTMLDivElement>): void} | Function,
onMouseOut?: {(event: React.MouseEvent<HTMLDivElement>): void} | Function,
forceOpen?: boolean,
forceClose?: {(): void} | Function,
parentKeyNavigationHandler?: {(event: React.KeyboardEvent): void} | Function,
preventCloseOnClick?: boolean,
onClick?: {(event: React.TouchEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>, data: Object, target: HTMLElement): void} | Function,
data?: Object,
children?: React.ReactNode,
}
export interface ConnectMenuProps {
id: string;
trigger: any;
}
export const ContextMenu: React.ComponentClass<ContextMenuProps>;
export const ContextMenuTrigger: React.ComponentClass<ContextMenuTriggerProps>;
export const MenuItem: React.ComponentClass<MenuItemProps>;
export const SubMenu: React.ComponentClass<SubMenuProps>;
export function connectMenu<P>(
menuId: string
): (
Child: React.ComponentType<P & ConnectMenuProps>
) => React.ComponentType<P>;
export function showMenu(opts?: any, target?: HTMLElement): void;
export function hideMenu(opts?: any, target?: HTMLElement): void;
}
declare module "@firefox-devtools/react-contextmenu/modules/actions" {
export function showMenu(opts?: any, target?: HTMLElement): void;
export function hideMenu(opts?: any, target?: HTMLElement): void;
}