commerce/framework/medusa/customer/use-customer.tsx
Kasper Fabricius Kristensen 3342d9d1bb
initial provider (#2)
2021-09-14 17:29:38 +02:00

28 lines
716 B
TypeScript

import { SWRHook } from '@commerce/utils/types'
import useCustomer, { UseCustomer } from '@commerce/customer/use-customer'
import { normalizeCustomer } from '@framework/utils/normalizers/normalize-customer'
export default useCustomer as UseCustomer<typeof handler>
export const handler: SWRHook<any> = {
fetchOptions: {
query: 'auth',
method: 'getSession',
},
async fetcher({ options, fetch }) {
const data = await fetch({
...options,
})
return normalizeCustomer(data?.customer) || null
},
useHook:
({ useData }) =>
(input) => {
return useData({
swrOptions: {
revalidateOnFocus: false,
...input?.swrOptions,
},
})
},
}