import { createQueryKeys } from '@lukemorales/query-key-factory';
import { infiniteQueryOptions, QueryClient, useInfiniteQuery, useQueryClient } from '@tanstack/react-query';
import { getBoards } from '@/server/actions';
const boards = createQueryKeys('boards', {
list: {
queryKey: null
}
});
export const getBoardsQueryOptions = (queryClient: QueryClient) =>
infiniteQueryOptions({
...boards.list,
queryFn: async context => {
const res = await getBoards(context.pageParam);
//seeding here using queryClient
return res;
},
initialPageParam: 1,
getNextPageParam: page => page.meta.nextCursor
});
export const useBoards = () => {
const queryClient = useQueryClient();
return useInfiniteQuery(getBoardsQueryOptions(queryClient));
};
import { createQueryKeys } from '@lukemorales/query-key-factory';
import { infiniteQueryOptions, QueryClient, useInfiniteQuery, useQueryClient } from '@tanstack/react-query';
import { getBoards } from '@/server/actions';
const boards = createQueryKeys('boards', {
list: {
queryKey: null
}
});
export const getBoardsQueryOptions = (queryClient: QueryClient) =>
infiniteQueryOptions({
...boards.list,
queryFn: async context => {
const res = await getBoards(context.pageParam);
//seeding here using queryClient
return res;
},
initialPageParam: 1,
getNextPageParam: page => page.meta.nextCursor
});
export const useBoards = () => {
const queryClient = useQueryClient();
return useInfiniteQuery(getBoardsQueryOptions(queryClient));
};