@saleae/react-contexify
Version:
Add contextmenu to your react component with ease
60 lines (59 loc) • 1.97 kB
TypeScript
import { Component, ReactNode, SyntheticEvent } from 'react';
import PropTypes from 'prop-types';
import { MenuId, StyleProps } from '../types';
export interface MenuProviderProps extends StyleProps {
/**
* Unique id to identify the menu. Use to Trigger the corresponding menu
*/
id: MenuId;
/**
* Any valid node that can be rendered
*/
children: ReactNode;
/**
* Any valid node that can be rendered or a function returning a valid react node
*/
component: ReactNode | ((args?: any) => ReactNode);
/**
* Render props
*/
render?: (args?: any) => ReactNode;
/**
* Any react event
* `onClick`, `onContextMenu`, ...
*/
event: string;
/**
* Store children ref
* `default: true`
*/
storeRef: boolean;
/**
* Any valid object, data are passed to the menu item callback
*/
data?: object;
}
declare class MenuProvider extends Component<MenuProviderProps> {
static propTypes: {
id: PropTypes.Validator<MenuId>;
children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
component: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
render: PropTypes.Requireable<(...args: any[]) => any>;
event: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
storeRef: PropTypes.Requireable<boolean>;
data: PropTypes.Requireable<object>;
};
static defaultProps: {
component: string;
event: string;
storeRef: boolean;
};
childrenRefs: HTMLElement[];
handleEvent: (e: SyntheticEvent) => void;
setChildRef: (ref: HTMLElement) => number | true;
getChildren(): import("react").ReactChild[];
render(): {} | null | undefined;
}
export { MenuProvider };