import {useShopActionInfiniteQuery} from '../../internal/reactQuery' import {useShopActions} from '../../internal/useShopActions' import { PaginatedDataHookOptionsBase, PaginatedDataHookReturnsBase, ProductMedia, } from '../../types' export interface UseProductMediaParams extends PaginatedDataHookOptionsBase { /** * The product ID to fetch media for. */ id: string } export interface UseProductMediaReturns extends PaginatedDataHookReturnsBase { /** * The product media returned from the query. */ media: ProductMedia[] | null } export const useProductMedia = ( params: UseProductMediaParams ): UseProductMediaReturns => { const {getProductMedia} = useShopActions() const {id, skip = false, ...restParams} = params const {data, ...rest} = useShopActionInfiniteQuery( ['productMedia', id, restParams], getProductMedia, {id, ...restParams}, {skip} ) return { ...rest, media: data, } } /** * The `useProductMedia` hook fetches media items (images, videos, etc.) for a specific product. * @publicDocs */ export type UseProductMediaGeneratedType = ( params: UseProductMediaParams ) => UseProductMediaReturns