initial provider (#2)

This commit is contained in:
Kasper Fabricius Kristensen
2021-09-14 17:29:38 +02:00
committed by GitHub
parent 5b4d1b57d4
commit 3342d9d1bb
66 changed files with 1665 additions and 2 deletions

View File

@@ -0,0 +1,42 @@
import { SWRHook } from '@commerce/utils/types'
import useSearch, { UseSearch } from '@commerce/product/use-search'
import { Product } from '@commerce/types/product'
import { Product as MedusaProduct } from '@medusajs/medusa-js/lib/types'
import { normalizeProduct } from '@framework/utils/normalizers/normalize-products'
export default useSearch as UseSearch<typeof handler>
export const handler: SWRHook<any> = {
fetchOptions: {
query: 'products',
method: 'list',
},
async fetcher({ input, options, fetch }) {
const { products } = await fetch({
...options,
variables: { query: null },
})
return {
products: products
? products.map((product: MedusaProduct) => normalizeProduct(product))
: [],
found: products.length,
}
},
useHook:
({ useData }) =>
({ input = {} }) => {
return useData({
input: [
['search', input.search],
['categoryId', input.categoryId],
['brandId', input.brandId],
['sort', input.sort],
],
swrOptions: {
revalidateOnFocus: false,
...input.swrOptions,
},
})
},
}