@shopify/shop-minis-react
Version:
React component library for Shopify Shop Minis with Tailwind CSS v4 support (source-only, requires TypeScript)
47 lines (39 loc) • 1.11 kB
text/typescript
import {useMemo} from 'react'
import {useShopActions} from '../../internal/useShopActions'
import {useShopActionsPaginatedDataFetching} from '../../internal/useShopActionsPaginatedDataFetching'
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} = useShopActionsPaginatedDataFetching(
getRecentProducts,
shopActionParams,
{
skip,
hook: 'useRecentProducts',
}
)
const products = useMemo(() => {
return data ?? null
}, [data])
return {
...rest,
products,
}
}