UNPKG

@flexis/ui

Version:

Styleless React Components

62 lines 2.34 kB
import { HTMLAttributes, SyntheticEvent, ReactElement, PureComponent } from 'react'; import PropTypes from 'prop-types'; import { CombinePropsAndAttributes } from '../../helpers'; import { Align, AlignVariant } from '../common/types'; export * from './DropdownContent'; interface ISelfProps { active?: boolean; defaultActive?: boolean; disabled?: boolean; blockScroll?: boolean; hideOnClick?: boolean; align?: Align; children: ReactElement<any>[]; transitionDuration?: number; onToggle?(active: boolean, event: Event | SyntheticEvent): any; } export declare type IProps = CombinePropsAndAttributes<ISelfProps, HTMLAttributes<HTMLSpanElement>>; interface IState { active: boolean; contentWithOffset: boolean; } export default class Dropdown extends PureComponent<IProps, IState> { static propTypes: { onToggle: PropTypes.Requireable<(...args: any[]) => any>; defaultActive: PropTypes.Requireable<boolean>; active: PropTypes.Requireable<boolean>; disabled: PropTypes.Requireable<boolean>; blockScroll: PropTypes.Requireable<boolean>; hideOnClick: PropTypes.Requireable<boolean>; align: PropTypes.Requireable<LineAlignSetting>; children: PropTypes.Validator<PropTypes.ReactElementLike[]>; transitionDuration: PropTypes.Requireable<number>; }; static defaultProps: { defaultActive: boolean; disabled: boolean; blockScroll: boolean; align: AlignVariant; transitionDuration: number; }; static getDerivedStateFromProps({ active, disabled }: IProps, { active: prevActive }: IState): Partial<IState>; private elementRef; private contentRef; private unsubscribeFromOutsideClick; private unblockScroll; constructor(props: any); render(): JSX.Element; private renderContent; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(_: any, { active: prevActive }: IState): void; private onElementRef; private onContentRef; private onToggle; private onEscPress; private onOutsideClick; toggleActiveState(forceState?: boolean, event?: Event | SyntheticEvent): void; private toggleEffects; private removeEffects; private setContentPosition; } //# sourceMappingURL=Dropdown.d.ts.map