Skip to content
IC Reactor

createInfiniteQueryFactory

createInfiniteQueryFactory<Service, Transform, Method, TPageParam, Selected>(reactor, config): InfiniteQueryFactoryFn<Service, Method, Transform, TPageParam, Selected>

Defined in: react/src/createInfiniteQuery.ts:529

Create an infinite query factory that accepts getArgs at call time. Useful when pagination logic varies by context.

Service

The actor interface type

Transform extends keyof TransformArgsRegistry<unknown>

The transformation key (identity, display, etc.)

Method extends string = FunctionName<Service>

The method name on the actor

TPageParam = unknown

The page parameter type

Selected = InfiniteData<ReactorQueryData<ReactorReturnOk<Service, Method, Transform>>, TPageParam>

The type returned after select transformation

Reactor<Service, Transform>

The Reactor instance

InfiniteQueryFactoryConfig<NoInfer<Service>, Method, Transform, TPageParam, Selected>

Infinite query configuration (without getArgs)

InfiniteQueryFactoryFn<Service, Method, Transform, TPageParam, Selected>

A function that accepts getArgs and returns an ActorInfiniteQueryResult

const getPostsQuery = createActorInfiniteQueryFactory(reactor, {
functionName: "get_posts",
initialPageParam: 0,
getKeyArgs: (args) => {
const [{ userId }] = args
return [{ userId }]
},
getNextPageParam: (lastPage) => lastPage.nextCursor,
})
// Create query with specific args builder
const userPostsQuery = getPostsQuery((cursor) => [{ userId, cursor, limit: 10 }])
const { data, fetchNextPage } = userPostsQuery.useInfiniteQuery()