@ihatecode/react-context-menu
Version:
A context menu component written in React.
35 lines (34 loc) • 998 B
TypeScript
import * as React from 'react';
interface ContextMenuState {
visible: boolean;
position: {
x: number;
y: number;
};
}
type ContextMenuFunctionA = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
type UseContextMenu = () => [ContextMenuState & {
onContextMenu: ContextMenuFunctionA;
onClose: () => void;
}];
export interface ContextMenuItemProps {
key: string | number;
icon?: React.ReactNode;
label: string;
disabled?: boolean;
children?: (ContextMenuItemProps | ContextMenuItemProps[])[];
}
export interface ContextMenuProps {
zIndex?: number;
className?: string;
items: (ContextMenuItemProps | ContextMenuItemProps[])[];
contextMenu: ContextMenuState & {
onClose: () => void;
};
onClick?: (key: string | number) => void;
}
type ContextMenuComponent = React.FC<ContextMenuProps> & {
useContextMenu: UseContextMenu;
};
declare const ContextMenu: ContextMenuComponent;
export default ContextMenu;