@hippy/rmc-pull-to-refresh
Version:
React Mobile Pull To Refresh Component
64 lines (60 loc) • 1.77 kB
TypeScript
import React from 'react';
interface Indicator {
activate?: React.ReactNode;
deactivate?: React.ReactNode;
release?: React.ReactNode;
finish?: React.ReactNode;
}
interface PropsType {
getScrollContainer: () => React.ReactNode;
direction: 'down' | 'up' | 'both' | string;
refreshing?: boolean;
distanceToRefresh: number;
onRefresh: () => void;
onFooterRefresh?: () => void;
indicator: Indicator;
footerIndicator?: Indicator;
indicatorHeight: number;
footerIndicatorHeight?: number;
prefixCls?: string;
className?: string;
style?: React.CSSProperties;
damping?: number;
scale?: number;
}
declare class PullToRefresh extends React.Component<PropsType, any> {
static defaultProps: PropsType;
state: {
currSt: string;
dragOnEdge: boolean;
};
containerRef: any;
contentRef: any;
_to: any;
_ScreenY: any;
_startScreenY: any;
_startScreenX: any;
_lastScreenY: any;
_timer: any;
_isMounted: boolean;
shouldUpdateChildren: boolean;
direction: string;
currentMoveDirection: string;
indicatorHeight: number;
shouldComponentUpdate(nextProps: any): boolean;
componentDidUpdate(prevProps: any): void;
componentDidMount(): void;
componentWillUnmount(): void;
triggerPullToRefresh: () => void;
init: (ele: any) => void;
destroy: (ele: any) => void;
onTouchStart: (_ele: any, e: any) => void;
isEdge: (ele: any, direction: string) => boolean | undefined;
damping: (dy: number) => number;
onTouchMove: (ele: any, e: any) => void;
onTouchEnd: () => void;
reset: () => void;
setContentStyle: (ty: number) => void;
render(): JSX.Element;
}
export { PullToRefresh as default };