const getProducts = async (info: QueryFunctionContext<string[], any>) => {
const page = info.queryKey[1];
const products = await databases.listDocuments<ProductProps>(
process.env.NEXT_PUBLIC_AW_DATABASE!,
"product",
[Query.limit(10), Query.offset(limit * +page)]
);
const nextQuery = await databases.listDocuments<ProductProps>(
process.env.NEXT_PUBLIC_AW_DATABASE!,
"product",
[Query.limit(limit), Query.offset(limit * (+page + 1))]
);
return {
result: products.documents,
hasNext: nextQuery.documents.length > 0,
};
};
export const useProducts = (page: string) => {
return useQuery(["products", page], getProducts, { keepPreviousData: true });
};
const getProducts = async (info: QueryFunctionContext<string[], any>) => {
const page = info.queryKey[1];
const products = await databases.listDocuments<ProductProps>(
process.env.NEXT_PUBLIC_AW_DATABASE!,
"product",
[Query.limit(10), Query.offset(limit * +page)]
);
const nextQuery = await databases.listDocuments<ProductProps>(
process.env.NEXT_PUBLIC_AW_DATABASE!,
"product",
[Query.limit(limit), Query.offset(limit * (+page + 1))]
);
return {
result: products.documents,
hasNext: nextQuery.documents.length > 0,
};
};
export const useProducts = (page: string) => {
return useQuery(["products", page], getProducts, { keepPreviousData: true });
};