dora-ui
Version:
A React.js Mobile UI Library
54 lines (53 loc) • 2.07 kB
TypeScript
import React, { Component } from 'react';
import PropTypes from 'prop-types';
/**
* 1. 先写 interface 可选 必选
* 2. 再写defaultProps 然后将interface中有默认值的字段的可选符号删去
* 3. 最后写propTypes interface中没有可选符号 defaultProps中也没有默认值的字段需要加上isRequired
*/
export declare type positionType = 'top' | 'right' | 'bottom' | 'left' | 'center';
export interface Props {
node?: HTMLElement;
visible: boolean;
position: positionType;
mask: boolean;
maskClosable: boolean;
onClose: () => void;
wrapClassName: string;
contentStyle: React.CSSProperties;
stopScrollUnderMask: boolean;
destroyOnClose: boolean;
transitionName: string;
transitionDuration: number;
}
declare class Popup extends Component<Props> {
static propTypes: {
node: PropTypes.Requireable<any>;
visible: PropTypes.Requireable<boolean>;
position: PropTypes.Requireable<string>;
mask: PropTypes.Requireable<boolean>;
maskClosable: PropTypes.Requireable<boolean>;
onClose: PropTypes.Requireable<(...args: any[]) => any>;
wrapClassName: PropTypes.Requireable<string>;
contentStyle: PropTypes.Requireable<object>;
stopScrollUnderMask: PropTypes.Requireable<boolean>;
destroyOnClose: PropTypes.Requireable<boolean>;
transitionName: PropTypes.Requireable<string>;
transitionDuration: PropTypes.Requireable<number>;
};
static defaultProps: Partial<Props>;
/**
* 初次渲染节点(visible:true => mount)
* 后续只会隐藏(visible:false => visibility+opacity)
* 或显示(visible:true => visibility+opacity)节点
* 不会删除节点(除非父组件卸载或destroyOnClose为true)
*/
hasFirstRendered: boolean;
componentDidMount(): void;
componentDidUpdate(prevProps: Props): void;
componentWillUnmount(): void;
handleMaskClick: () => void;
get transitionName(): string;
render(): JSX.Element | null;
}
export default Popup;