Files
supabase/apps/studio/domain/explorer/useLoadMoreOnIntersect.ts

19 lines
518 B
TypeScript

import { useEffect } from 'react'
interface UseLoadMoreOnIntersectParams {
readonly isIntersecting: boolean | undefined
readonly canLoadMore: boolean
readonly loadMore: () => void
}
/** Calls `loadMore` whenever the sentinel is intersecting and more can be loaded. */
export const useLoadMoreOnIntersect = ({
isIntersecting,
canLoadMore,
loadMore,
}: UseLoadMoreOnIntersectParams) => {
useEffect(() => {
if (isIntersecting && canLoadMore) loadMore()
}, [isIntersecting, canLoadMore, loadMore])
}