UNPKG

jb-mobile-ui

Version:

JinBiWuYe Mobile UI Components base on Vant

39 lines (38 loc) 1.19 kB
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;