jb-mobile-ui
Version:
JinBiWuYe Mobile UI Components base on Vant
39 lines (38 loc) • 1.19 kB
TypeScript
import { Ref } from 'vue';
export interface InfiniteScrollOptions {
bottomThreshold?: number;
topThreshold?: number;
throttleDelay?: number;
disabled?: Ref<boolean>;
onLoadMore?: () => Promise<void> | void;
onLoadPrevious?: () => Promise<void> | void;
debug?: boolean;
}
export interface ScrollInfo {
scrollTop: number;
scrollHeight: number;
clientHeight: number;
distanceToBottom: number;
distanceToTop: number;
isNearBottom: boolean;
isNearTop: boolean;
scrollDirection: 'up' | 'down' | 'none';
}
export interface InfiniteScrollState {
isLoadingMore: Ref<boolean>;
isLoadingPrevious: Ref<boolean>;
hasMoreData: Ref<boolean>;
hasPreviousData: Ref<boolean>;
}
export interface UseInfiniteScrollReturn extends InfiniteScrollState {
scrollInfo: Ref<ScrollInfo | undefined>;
handleScroll: (event: Event) => void;
reset: () => void;
triggerLoadMore: () => void;
triggerLoadPrevious: () => void;
setDataState: (options: {
hasMore?: boolean;
hasPrevious?: boolean;
}) => void;
}
export declare function useInfiniteScroll(options?: InfiniteScrollOptions): UseInfiniteScrollReturn;