UNPKG

chowa

Version:

UI component library based on React

66 lines (65 loc) 2.13 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import * as React from 'react'; import * as PropTypes from 'prop-types'; export interface AffixProps { className?: string; style?: React.CSSProperties; offsetTop?: number; offsetBottom?: number; target?: () => Window | HTMLElement; onTargetScroll?: () => void; onTargetResize?: () => void; onChange?: (affixed?: boolean) => void; } export declare type Position = 'static' | 'absolute' | 'fixed' | 'relative'; export interface AffixState { contentTop: number; contentLeft: number; contentWidth: number; contentHeight: number; targetTop: number; targetHeight: number; targetLeft: number; affixTop: number; affixBottom: number; affixLeft: number; position: Position; affixed: boolean; isBlock: boolean; isWindow: boolean; } declare class Affix extends React.PureComponent<AffixProps, AffixState> { static propTypes: { children: PropTypes.Requireable<PropTypes.ReactNodeLike>; offsetTop: PropTypes.Requireable<number>; offsetBottom: PropTypes.Requireable<number>; target: PropTypes.Requireable<(...args: any[]) => any>; onTargetScroll: PropTypes.Requireable<(...args: any[]) => any>; onTargetResize: PropTypes.Requireable<(...args: any[]) => any>; onChange: PropTypes.Requireable<(...args: any[]) => any>; style: PropTypes.Requireable<object>; className: PropTypes.Requireable<string>; }; static defaultProps: { offsetTop: number; target: () => Window & typeof globalThis; }; private resizeObserver; private node; constructor(props: AffixProps); componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(preProps: AffixProps): void; private onScrollHandler; private onResizeHandler; private updatePosition; render(): JSX.Element; } export default Affix;