import {useShopActionInfiniteQuery} from '../../internal/reactQuery' import {useShopActions} from '../../internal/useShopActions' import { ProductList, PaginatedDataHookOptionsBase, PaginatedDataHookReturnsBase, } from '../../types' export interface UseProductListParams extends PaginatedDataHookOptionsBase { /** * The GID of the product list. E.g. `gid://shopapp/ProductList/123`. */ id?: string /** * The public ID of the product list. */ publicId?: string } export interface UseProductListResult extends PaginatedDataHookReturnsBase { productList: ProductList | null } export const useProductList = ( params?: UseProductListParams ): UseProductListResult => { const {getProductList} = useShopActions() const {skip, ...shopActionParams} = params ?? {} const {data, ...rest} = useShopActionInfiniteQuery( ['productList', shopActionParams], getProductList, shopActionParams, {skip} ) return { ...rest, productList: data, } } /** * The `useProductList` hook fetches a single product collection by its ID. To fetch all of the user's collections at once, use `useProductLists()` instead. * @publicDocs */ export type UseProductListGeneratedType = ( params?: UseProductListParams ) => UseProductListResult