@csegames/camelot-unchained
Version:
Camelot Unchained Client Library
44 lines (43 loc) • 1.3 kB
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { Quadrant } from '../utils';
export interface ContextMenuContentProps {
close: () => void;
}
export interface ContextMenuProps {
content: (props: ContextMenuContentProps) => any;
onContextMenuContentShow?: () => void;
onContextMenuContentHide?: () => void;
contentProps?: any;
offsetLeft?: number;
offsetRight?: number;
offsetTop?: number;
offsetBottom?: number;
style?: React.CSSProperties;
}
export interface ContextMenuState {
x: number;
y: number;
wndRegion: Quadrant;
hidden: boolean;
offsetLeft: number;
offsetRight: number;
offsetTop: number;
offsetBottom: number;
}
export declare class ContextMenu extends React.Component<ContextMenuProps, ContextMenuState> {
private mouseOverElement;
constructor(props: ContextMenuProps);
render(): JSX.Element;
shouldComponentUpdate(nextProps: ContextMenuProps, nextState: ContextMenuState): boolean;
hide: () => void;
show: (clientX: number, clientY: number) => void;
componentWillUnmount(): void;
private onKeyDown;
private onMouseDown;
private onMouseEnter;
private onMouseLeave;
private onContextMenu;
private computeStyle;
}
export default ContextMenu;