• React hook based on React Query for managing, caching and syncing observables in React with infinite pagination.

    Example

    function ExampleInfiniteSubscription() {
    const {
    data,
    isError,
    error,
    isFetchingNextPage,
    hasNextPage,
    fetchNextPage,
    } = useInfiniteSubscription(
    'test-key',
    () => stream$,
    {
    getNextPageParam: (lastPage, allPages) => lastPage.nextCursor,
    // other options
    }
    );

    if (isError) {
    return (
    <div role="alert">
    {error?.message || 'Unknown error'}
    </div>
    );
    }
    return <>
    {data.pages.map((page) => (
    <div key={page.key}>{JSON.stringify(page)}</div>
    ))}
    {isFetchingNextPage && <>Loading...</>}
    {hasNextPage && (
    <button onClick={fetchNextPage}>Load more</button>
    )}
    </>;
    }

    Type Parameters

    • TSubscriptionFnData = unknown

    • TError = Error

    • TData = TSubscriptionFnData

    • TSubscriptionKey extends QueryKey = QueryKey

    Parameters

    • subscriptionKey: TSubscriptionKey
    • subscriptionFn: ((context: QueryFunctionContext<TSubscriptionKey, any>) => Observable<TSubscriptionFnData>)
        • (context: QueryFunctionContext<TSubscriptionKey, any>): Observable<TSubscriptionFnData>
        • Parameters

          • context: QueryFunctionContext<TSubscriptionKey, any>

          Returns Observable<TSubscriptionFnData>

    • options: UseInfiniteSubscriptionOptions<TSubscriptionFnData, TError, TData, TSubscriptionKey> = {}

    Returns UseInfiniteSubscriptionResult<TData, TError>

Generated using TypeDoc