All files / src/queries useInfiniteMovieQuery.ts

0% Statements 0/5
0% Branches 0/2
0% Functions 0/2
0% Lines 0/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                                                   
import { IMovie } from "@/interfaces";
import { useInfiniteQuery, QueryKey } from "@tanstack/react-query";
 
type PaginatedMovieResponse = {
  page: number;
  results: IMovie[];
  total_pages: number;
  total_results: number;
};
 
const useInfiniteMovieQuery = (queryKey: QueryKey, queryFn: any) => {
  return useInfiniteQuery({
    queryKey,
    queryFn,
    initialPageParam: 1,
    getNextPageParam: (lastPage: PaginatedMovieResponse) => {
      if (lastPage.page < lastPage.total_pages) {
        return lastPage.page + 1;
      }
      return undefined;
    },
  });
};
 
export default useInfiniteMovieQuery;