UNPKG

1.92 kBTypeScriptView Raw
1import * as React from 'react';
2import type { AlignType } from '@rc-component/trigger';
3import type { AdjustOverflow } from '../_util/placements';
4import type { MenuProps } from '../menu';
5declare const Placements: readonly ["topLeft", "topCenter", "topRight", "bottomLeft", "bottomCenter", "bottomRight", "top", "bottom"];
6type Placement = (typeof Placements)[number];
7type OverlayFunc = () => React.ReactElement;
8export type DropdownArrowOptions = {
9 pointAtCenter?: boolean;
10};
11export interface DropdownProps {
12 menu?: MenuProps;
13 autoFocus?: boolean;
14 arrow?: boolean | DropdownArrowOptions;
15 trigger?: ('click' | 'hover' | 'contextMenu')[];
16 dropdownRender?: (originNode: React.ReactNode) => React.ReactNode;
17 onOpenChange?: (open: boolean, info: {
18 source: 'trigger' | 'menu';
19 }) => void;
20 open?: boolean;
21 disabled?: boolean;
22 destroyPopupOnHide?: boolean;
23 align?: AlignType;
24 getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
25 prefixCls?: string;
26 className?: string;
27 rootClassName?: string;
28 transitionName?: string;
29 placement?: Placement;
30 overlayClassName?: string;
31 overlayStyle?: React.CSSProperties;
32 forceRender?: boolean;
33 mouseEnterDelay?: number;
34 mouseLeaveDelay?: number;
35 openClassName?: string;
36 children?: React.ReactNode;
37 autoAdjustOverflow?: boolean | AdjustOverflow;
38 /** @deprecated Please use `menu` instead */
39 overlay?: React.ReactElement | OverlayFunc;
40 /** @deprecated Please use `open` instead */
41 visible?: boolean;
42 /** @deprecated Please use `onOpenChange` instead */
43 onVisibleChange?: (open: boolean) => void;
44}
45type CompoundedComponent = React.FC<DropdownProps> & {
46 _InternalPanelDoNotUseOrYouWillBeFired: typeof WrapPurePanel;
47};
48declare const Dropdown: CompoundedComponent;
49declare const WrapPurePanel: React.FC<DropdownProps>;
50export default Dropdown;