@shopify/shop-minis-react
Version:
React component library for Shopify Shop Minis with Tailwind CSS v4 support (source-only, requires TypeScript)
45 lines (37 loc) • 1.06 kB
text/typescript
import {useMemo} from 'react'
import {useShopActionInfiniteQuery} from '../../internal/reactQuery'
import {useShopActions} from '../../internal/useShopActions'
import {
PaginatedDataHookOptionsBase,
PaginatedDataHookReturnsBase,
Product,
} from '../../types'
export interface UseRecentProductsParams extends PaginatedDataHookOptionsBase {
includeSensitive?: boolean
}
export interface UseRecentProductsReturns extends PaginatedDataHookReturnsBase {
products: Product[] | null
}
/**
* Hook to fetch recently viewed products.
* @param params - Options for the hook.
*/
export const useRecentProducts = (
params?: UseRecentProductsParams
): UseRecentProductsReturns => {
const {getRecentProducts} = useShopActions()
const {skip, ...shopActionParams} = params ?? {}
const {data, ...rest} = useShopActionInfiniteQuery(
['recentProducts', shopActionParams],
getRecentProducts,
shopActionParams,
{skip}
)
const products = useMemo(() => {
return data ?? null
}, [data])
return {
...rest,
products,
}
}