"use client"
import React, { memo, useCallback, useState } from "react"
import { CenterAligned } from "../CenterAligned"
import { RetryButton } from "../RetryButton"
import {
UseScrollingPaginationOptions,
useScrollingPagination,
} from "./useScrollingPagination"
export type ScrollingPaginatorProps = {
renderFallback?: React.ComponentType
element?: string
hasError?: boolean
} & UseScrollingPaginationOptions
export const ScrollingPaginator = memo(function ScrollingPaginator({
renderFallback: Fallback,
hasNext,
loadNext,
isLoadingNext,
hasError: hasErrorProp,
}: ScrollingPaginatorProps) {
const [hasLocalError, setHasLocalError] = useState(false)
const hasError = hasErrorProp || hasLocalError
const onError = useCallback(() => {
setHasLocalError(true)
}, [])
const { ref, isLoading } = useScrollingPagination({
hasNext: hasNext && !hasLocalError,
loadNext,
isLoadingNext,
onError,
})
const renderContent = () => {
if (hasError || hasErrorProp) {
return (