@saleae/react-contexify
Version:
Add contextmenu to your react component with ease
52 lines (51 loc) • 2.01 kB
TypeScript
import React, { Component, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { MenuItemEventHandler, StyleProps, InternalProps } from '../types';
export interface ItemProps extends StyleProps, InternalProps {
/**
* Any valid node that can be rendered
*/
children: ReactNode;
/**
* Passed to the `Item` onClick callback. Accessible via `props`
*/
data?: object;
/**
* Disable or not the `Item`. If a function is used, a boolean must be returned
*/
disabled: boolean | ((args: MenuItemEventHandler) => boolean);
/**
* Whether the `Menu` should close or not from a click on the `Item`. If a function is used, a boolean must be returned
*/
closeOnClick?: boolean | ((args: MenuItemEventHandler) => boolean);
/**
* Callback when the current `Item` is clicked. The callback give you access to the current event and also the data passed
* to the `Item`.
* `({ event, props }) => ...`
*/
onClick: (args: MenuItemEventHandler) => any;
}
declare class Item extends Component<ItemProps> {
static propTypes: {
children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
data: PropTypes.Requireable<object>;
disabled: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
nativeEvent: PropTypes.Requireable<object>;
propsFromTrigger: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
closeOnClick: PropTypes.Requireable<boolean>;
};
static defaultProps: {
disabled: boolean;
onClick: () => void;
closeOnClick: boolean;
};
isDisabled: boolean;
stayOpenOnClick: boolean;
constructor(props: ItemProps);
handleClick: (e: React.MouseEvent) => void;
render(): JSX.Element;
}
export { Item };