@alifd/next
Version:
A configurable component library for web built on React.
57 lines (56 loc) • 2.48 kB
TypeScript
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import ResizeObserver from 'resize-observer-polyfill';
import type { AffixProps, AffixState, AffixMode } from './types';
/** Affix */
declare class Affix extends Component<AffixProps, AffixState> {
static propTypes: {
prefix: PropTypes.Requireable<string>;
container: PropTypes.Requireable<(...args: any[]) => any>;
offsetTop: PropTypes.Requireable<number>;
offsetBottom: PropTypes.Requireable<number>;
onAffix: PropTypes.Requireable<(...args: any[]) => any>;
useAbsolute: PropTypes.Requireable<boolean>;
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
children: PropTypes.Requireable<any>;
};
static defaultProps: {
prefix: string;
container: () => Window & typeof globalThis;
onAffix: () => void;
};
static _getAffixMode(nextProps: AffixProps): AffixMode;
constructor(props: AffixProps, context?: unknown);
static getDerivedStateFromProps(nextProps: AffixProps): {
affixMode: AffixMode;
} | null;
componentDidMount(): void;
componentDidUpdate(prevProps: AffixProps): void;
componentWillUnmount(): void;
resizeObserver: ResizeObserver;
timeout: ReturnType<typeof setTimeout> | null;
affixNode: HTMLDivElement;
affixChildNode: HTMLDivElement;
_clearContainerEvent: () => void;
_setEventHandlerForContainer(getContainer: NonNullable<AffixProps['container']>): void;
_removeEventHandlerForContainer(getContainer: NonNullable<AffixProps['container']>): void;
updatePosition: () => void;
_updateNodePosition: () => false | undefined;
_setAffixStyle(affixStyle: AffixState['style'], affixed?: boolean): void;
_setContainerStyle(containerStyle: AffixState['containerStyle']): void;
_getOffset(affixNode: HTMLDivElement, affixContainer: Element | Window): {
top: number;
left: number;
width: number;
height: number;
};
_affixNodeRefHandler: (ref: HTMLDivElement) => void;
_affixChildNodeRefHandler: (ref: HTMLDivElement) => void;
render(): React.JSX.Element;
}
export { AffixProps };
declare const _default: import("../config-provider/types").ConfiguredComponentClass<AffixProps & import("../config-provider/types").ComponentCommonProps, Affix, {}> & {
_getAffixMode: typeof Affix._getAffixMode;
};
export default _default;