@jstarpl/react-contextmenu
Version:
Context Menu implemented in React
73 lines (65 loc) • 2.71 kB
TypeScript
declare module "@jstarpl/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,
}
export interface ContextMenuTriggerProps {
id: string,
attributes?: React.HTMLAttributes<any>,
collect?: {(data: any): any},
disable?: boolean,
holdToDisplay?: number,
renderTag?: React.ElementType,
mouseButton?: number,
disableIfShiftIsPressed?: boolean,
[key: string]: any
}
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,
}
export interface SubMenuProps {
title: React.ReactElement<any> | React.ReactText,
className?: string,
disabled?: boolean,
hoverDelay?: number,
rtl?: boolean,
preventCloseOnClick?: boolean,
onClick?: {(event: React.TouchEvent<HTMLDivElement> | React.MouseEvent<HTMLDivElement>, data: Object, target: HTMLElement): void} | Function,
}
export interface ConnectMenuProps {
id: string;
trigger: any;
}
export const ContextMenu: React.ComponentClass<React.PropsWithChildren<ContextMenuProps>>;
export const ContextMenuTrigger: React.ComponentClass<React.PropsWithChildren<ContextMenuTriggerProps>>;
export const MenuItem: React.ComponentClass<React.PropsWithChildren<MenuItemProps>>;
export const SubMenu: React.ComponentClass<React.PropsWithChildren<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 "react-contextmenu/modules/actions" {
export function showMenu(opts?: any, target?: HTMLElement): void;
export function hideMenu(opts?: any, target?: HTMLElement): void;
}