/** * Add dropdown menu that you add onto any component. * * Similar to the context-actions package, accepts list of actions to create a dropdown menu. * Note: Does not support nested sub-menus. * * Usage: * let actions = [{ * title: 'My Action', * action: () => { alert('My Action Clicked!') } * icon: faPrint, // Limited to FontAwesome icons for now. * shortcut: Shortcut, // Shortcut class instance * group: ContextActions.groups.default, // What group to group the context action with * order: null // Int where to order within group * }]; * * Usage: * 1. Auto bind click to open event to parent *
* Click in this container * *
* * 2. Control via prop *
* DropdownMenu will not react to the click event if isShown prop is used * *
* */ import React, { PureComponent } from 'react'; import { type PopperOptions } from 'popper.js'; import { Popper } from '../popper'; import { type MenuOptions } from './Menu'; import { type ContextAction } from '../context-actions/ContextActionUtils'; import './DropdownMenu.scss'; export type DropdownAction = ContextAction & { actions?: never; }; export type DropdownActions = (() => DropdownAction[]) | DropdownAction | DropdownAction[]; type DropdownMenuProps = { actions: DropdownActions; isShown: boolean | null; onMenuClosed: () => void; onMenuOpened: () => void; options: MenuOptions; popperOptions: PopperOptions; popperClassName: string; menuStyle: React.CSSProperties; 'data-testid'?: string; }; declare class DropdownMenu extends PureComponent { static defaultProps: { isShown: null; onMenuClosed(): void; onMenuOpened(): void; options: {}; popperOptions: {}; popperClassName: string; menuStyle: {}; 'data-testid': undefined; }; constructor(props: DropdownMenuProps); componentDidMount(): void; componentDidUpdate(prevProps: DropdownMenuProps): void; componentWillUnmount(): void; container: React.RefObject; parent: Element | null; popper: React.RefObject; isOpen: boolean; closeMenu(): void; openMenu(): void; scheduleUpdate(): void; handleClick(e: Event): void; handleCloseMenu(): void; handleExited(): void; render(): JSX.Element; } export default DropdownMenu; //# sourceMappingURL=DropdownMenu.d.ts.map