@flexis/ui
Version:
Styleless React Components
45 lines • 1.72 kB
TypeScript
import { HTMLAttributes, SyntheticEvent, ReactElement, ReactNode, PureComponent } from 'react';
import PropTypes from 'prop-types';
import { CombinePropsAndAttributes } from '../../helpers';
interface ISelfProps {
active?: boolean;
centered?: boolean;
closeButton?: ReactElement<any>;
transitionDuration?: number;
children: ReactNode;
wrapContent?(content: ReactElement<any>): ReactNode;
onClose?(event: SyntheticEvent | KeyboardEvent): any;
}
export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLDivElement>>;
export declare function setAppElement(appElementSource: any): void;
export default class Modal extends PureComponent<IProps> {
static propTypes: {
onClose: PropTypes.Requireable<(...args: any[]) => any>;
active: PropTypes.Requireable<boolean>;
centered: PropTypes.Requireable<boolean>;
closeButton: PropTypes.Requireable<PropTypes.ReactElementLike>;
children: PropTypes.Validator<PropTypes.ReactNodeLike>;
transitionDuration: PropTypes.Requireable<number>;
wrapContent: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
active: boolean;
centered: boolean;
closeButton: JSX.Element;
transitionDuration: number;
};
private unblockScroll;
private unsubscribeKeyDown;
private ariaShow;
render(): any;
private wrapContent;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate({ active: prevActive }: IProps): void;
private onIgnoredEvent;
private onEscPress;
private toggleEffects;
private removeEffects;
}
export {};
//# sourceMappingURL=Modal.d.ts.map