choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
73 lines (72 loc) • 2.87 kB
TypeScript
import React, { PureComponent, ReactNode } from 'react';
import PropTypes from 'prop-types';
import { RenderFunction } from '../../../lib/trigger/Trigger';
import { Action } from '../../../lib/trigger/enum';
import { Placements } from './enum';
export interface DropDownProps {
trigger?: Action[];
overlay: ReactNode | RenderFunction;
onHiddenChange?: (hidden?: boolean) => void;
onHiddenBeforeChange?: (hidden: boolean) => boolean;
onVisibleChange?: (visible?: boolean) => void;
onOverlayClick?: (e: any) => void;
hidden?: boolean;
visible?: boolean;
defaultHidden?: boolean;
defaultVisible?: boolean;
disabled?: boolean;
align?: Object;
getPopupContainer?: (triggerNode: Element) => HTMLElement;
suffixCls?: string;
prefixCls?: string;
className?: string;
transitionName?: string;
placement?: Placements;
forceRender?: boolean;
popupClassName?: string;
}
export interface DropdownState {
hidden?: boolean;
}
export default class Dropdown extends PureComponent<DropDownProps> {
static displayName: string;
static propTypes: {
trigger: PropTypes.Requireable<(Action | null | undefined)[]>;
overlay: PropTypes.Requireable<any>;
placement: PropTypes.Requireable<Placements>;
hidden: PropTypes.Requireable<boolean>;
visible: PropTypes.Requireable<boolean>;
onHiddenChange: PropTypes.Requireable<(...args: any[]) => any>;
onHiddenBeforeChange: PropTypes.Requireable<(...args: any[]) => any>;
onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
onOverlayClick: PropTypes.Requireable<(...args: any[]) => any>;
suffixCls: PropTypes.Requireable<string>;
prefixCls: PropTypes.Requireable<string>;
defaultHidden: PropTypes.Requireable<boolean>;
defaultVisible: PropTypes.Requireable<boolean>;
popupClassName: PropTypes.Requireable<string>;
};
static defaultProps: {
suffixCls: string;
placement: Placements;
trigger: Action[];
defaultHidden: boolean;
};
renderedContentProps?: any;
get triggerAction(): Action[];
get transitionName(): string;
get prefixCls(): string;
state: DropdownState;
constructor(props: any);
/**
* 调用传入的onHiddenChange方法
*
* @param {boolean} hidden
*/
handlePopupHiddenChange(hidden: boolean): void;
handleClick(e: any): void;
getContent(...props: any[]): any;
renderPopupContent(...props: any[]): React.ReactElement<any, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)> | undefined;
componentWillReceiveProps({ hidden, visible }: DropDownProps): void;
render(): JSX.Element;
}