UNPKG

@shopify/shop-minis-react

Version:

React component library for Shopify Shop Minis with Tailwind CSS v4 support (source-only, requires TypeScript)

46 lines (38 loc) 972 B
import {useMemo} from 'react' import {useShopActions} from '../../internal/useShopActions' import {useShopActionsDataFetching} from '../../internal/useShopActionsDataFetching' import {DataHookOptionsBase, DataHookReturnsBase, Product} from '../../types' export interface UseProductParams extends DataHookOptionsBase { /** * The product ID to fetch. */ id: string } 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} = useShopActionsDataFetching( getProduct, { id, ...restParams, }, { skip, hook: 'useProduct', } ) const product = useMemo(() => { return data ?? null }, [data]) return { ...rest, product, } }