pageParam on infiniteQuery is undefined?

A bit confused what is going on here.

export const enumerateProjectsInfiniteQueryOpts = (
  variables: EnumerateProjectsRequest | undefined,
  init: RequestInit = {},
) => {
  const queryKey = [
    "projects",
    "infinite",
    {
      queries: variables?.queries,
    },
  ] as const;

  return infiniteQueryOptions({
    queryKey,
    queryFn: variables
      ? ({ pageParam }: { pageParam: string | undefined }) => {
          return enumerateProjects(
            {
              ...variables,
              queries: {
                ...variables.queries,
                continuation: variables.queries.continuation || pageParam,
              },
            },
            init,
          );
        }
      : skipToken,
    getNextPageParam: (lastPage) => lastPage.continuation || undefined,
    initialPageParam: undefined,
  });
};

export const useInfiniteProjects = () => {
  const qc = useQueryClient();

  const query = useInfiniteQuery({
    ...enumerateProjectsInfiniteQueryOpts({
      queries: {
        continuation: undefined,
      },
    }),
    select: (data) => {
      const lastPage = data.pages[data.pages.length - 1];

      return {
        projects: data.pages
          .flatMap((page) => page.projects ?? [])
          .filter((p) => p?.status !== "deleted")
          .sort(
            (a, b) =>
              new Date(b.createdate).getTime() -
              new Date(a.createdate).getTime(),
          ),
        continuation: lastPage ? lastPage.continuation : undefined,
      };
    },
    placeholderData: keepPreviousData,
  });

  useEffect(() => {
    if (query.hasNextPage && !query.isFetchingNextPage) {
      qc.prefetchInfiniteQuery({
        ...enumerateProjectsInfiniteQueryOpts({
          queries: {
            continuation: query.data?.continuation,
          },
        }),
      });
    }
  }, [query.hasNextPage, query.isFetchingNextPage]);

  return query;
};


Current scenario is that there is a continuation token returned from the first request. getNextPageParam for enumerateProjectsInfiniteQueryOpts does contai an object of lastPage with the next continuation token. However... pageParam is always undefined. My variables object does have it, but wondering why pageParams is always undefined
Was this page helpful?