import {useShopActionInfiniteQuery} from '../../internal/reactQuery' import {useShopActions} from '../../internal/useShopActions' import { PaginatedDataHookOptionsBase, PaginatedDataHookReturnsBase, ProductVariant, } from '../../types' export interface UseProductVariantsParams extends PaginatedDataHookOptionsBase { /** * The product ID to fetch variants for. */ id: string } export interface UseProductVariantsReturns extends PaginatedDataHookReturnsBase { /** * The product variants returned from the query. */ variants: ProductVariant[] | null } export const useProductVariants = ( params: UseProductVariantsParams ): UseProductVariantsReturns => { const {getProductVariants} = useShopActions() const {skip = false, ...restParams} = params const {data, ...rest} = useShopActionInfiniteQuery( ['productVariants', restParams], getProductVariants, restParams, {skip} ) return { ...rest, variants: data, } } /** * The `useProductVariants` hook fetches product variants for a specific product. * @publicDocs */ export type UseProductVariantsGeneratedType = ( params: UseProductVariantsParams ) => UseProductVariantsReturns