UNPKG

@selfcommunity/react-ui

Version:

React UI Components to integrate a Community created with SelfCommunity Platform.

68 lines (67 loc) 2.21 kB
import { Component, ReactNode, CSSProperties } from 'react'; type Fn = () => any; export interface InfiniteScrollProps { next?: Fn; hasMoreNext?: boolean; previous?: Fn; hasMorePrevious?: boolean; children: ReactNode; loaderNext?: ReactNode; loaderPrevious?: ReactNode; inverse?: boolean; scrollThreshold?: number | string; endMessage?: ReactNode; header?: ReactNode; footer?: ReactNode; style?: CSSProperties; height?: number | string; scrollableTarget?: ReactNode; hasChildren?: boolean; pullDownToRefresh?: boolean; pullDownToRefreshContent?: ReactNode; releaseToRefreshContent?: ReactNode; pullDownToRefreshThreshold?: number; refreshFunction?: Fn; onScroll?: (e: MouseEvent) => any; dataLength: number; initialScrollY?: number; className?: string; } interface State { showLoaderNext: boolean; showLoaderPrevious: boolean; pullToRefreshThresholdBreached: boolean; prevDataLength: number | undefined; } declare class InfiniteScroll extends Component<InfiniteScrollProps, State> { constructor(props: InfiniteScrollProps); private throttledOnScrollListener; private _scrollableNode; private el; private _infScroll; private lastScrollTop; private actionTriggered; private _pullDown; private startY; private currentY; private dragging; private maxPullDownDistance; componentDidMount(): void; componentWillUnmount(): void; componentDidUpdate(prevProps: InfiniteScrollProps): void; static getDerivedStateFromProps(nextProps: InfiniteScrollProps, prevState: State): { prevDataLength: number; showLoaderNext: boolean; showLoaderPrevious: boolean; pullToRefreshThresholdBreached: boolean; }; getScrollableTarget: () => HTMLElement; onStart: EventListener; onMove: EventListener; onEnd: EventListener; isElementAtTop(target: HTMLElement, scrollThreshold?: string | number): boolean; isElementAtBottom(target: HTMLElement, scrollThreshold?: string | number): boolean; onScrollListener: (event: MouseEvent) => void; render(): JSX.Element; } export default InfiniteScroll;