office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
47 lines (46 loc) • 1.9 kB
TypeScript
/// <reference types="react" />
import * as PropTypes from 'prop-types';
import { BaseComponent } from '../../Utilities';
import { IStickyProps } from './Sticky.types';
import { IScrollablePaneContext } from '../ScrollablePane/ScrollablePane.base';
export interface IStickyState {
isStickyTop: boolean;
isStickyBottom: boolean;
}
export interface IStickyContext {
scrollablePane: PropTypes.Requireable<object>;
}
export declare class Sticky extends BaseComponent<IStickyProps, IStickyState> {
static defaultProps: IStickyProps;
static contextTypes: IStickyContext;
context: IScrollablePaneContext;
distanceFromTop: number;
private _root;
private _stickyContentTop;
private _stickyContentBottom;
private _nonStickyContent;
constructor(props: IStickyProps);
readonly root: HTMLDivElement | null;
readonly stickyContentTop: HTMLDivElement | null;
readonly stickyContentBottom: HTMLDivElement | null;
readonly nonStickyContent: HTMLDivElement | null;
readonly canStickyTop: boolean;
readonly canStickyBottom: boolean;
syncScroll: (container: HTMLElement) => void;
componentDidMount(): void;
componentWillUnmount(): void;
componentDidUpdate(prevProps: IStickyProps, prevState: IStickyState): void;
shouldComponentUpdate(nextProps: IStickyProps, nextState: IStickyState): boolean;
render(): JSX.Element;
addSticky(stickyContent: HTMLDivElement): void;
resetSticky(): void;
setDistanceFromTop(container: HTMLDivElement): void;
private _getContentStyles(isSticky);
private _getStickyPlaceholderHeight(isSticky);
private _getNonStickyPlaceholderHeight();
private _onScrollEvent;
private _getStickyDistanceFromTop;
private _getStickyDistanceFromTopForFooter;
private _getNonStickyDistanceFromTop;
private _getBackground();
}