import {useShopActionInfiniteQuery} from '../../internal/reactQuery' import {useShopActions} from '../../internal/useShopActions' import { PaginatedDataHookOptionsBase, PaginatedDataHookReturnsBase, ProductList, } from '../../types' export interface UseProductListsParams extends PaginatedDataHookOptionsBase { /** * The number of products to fetch per product list. */ itemsFirst?: number } export interface UseProductListsResult extends PaginatedDataHookReturnsBase { productLists: ProductList[] | null } export const useProductLists = ( params?: UseProductListsParams ): UseProductListsResult => { const {getProductLists} = useShopActions() const {skip, ...shopActionParams} = params ?? {} const {data, ...rest} = useShopActionInfiniteQuery( ['productLists', shopActionParams], getProductLists, shopActionParams, {skip} ) return { ...rest, productLists: data, } } /** * The `useProductLists` hook fetches all product collections that the user has created. Use this for displaying a user's collections overview or collection picker. For fetching a specific collection's full contents, use `useProductList()` instead which provides better pagination for individual lists. * @publicDocs */ export type UseProductListsGeneratedType = ( params?: UseProductListsParams ) => UseProductListsResult