import {useShopActionQuery} from '../../internal/reactQuery' import {useShopActions} from '../../internal/useShopActions' import {DataHookOptionsBase, DataHookReturnsBase, Product} from '../../types' export interface UseProductParams extends DataHookOptionsBase { /** * The product ID to fetch. */ id: string } export interface UseProductReturns extends DataHookReturnsBase { /** * The product returned from the query. */ product: Product | null } export const useProduct = (params: UseProductParams): UseProductReturns => { const {getProduct} = useShopActions() const {id, skip = false, ...restParams} = params const {data, ...rest} = useShopActionQuery( ['product', id, restParams], getProduct, {id, ...restParams}, {skip} ) return { ...rest, product: data, } } /** * The `useProduct` hook fetches a single product by its ID. Returns complete product details including variants, media, pricing, and shop information. Use this for product detail pages or when you need full product data for a single item. For fetching multiple products efficiently, use `useProducts()` instead which batches requests. * @publicDocs */ export type UseProductGeneratedType = ( params: UseProductParams ) => UseProductReturns