add logout hook

This commit is contained in:
DuvCharles 2022-12-14 15:55:40 +01:00 committed by Hadrien Lucas
parent 8a0395050f
commit 5b29bf8c78
2 changed files with 23 additions and 13 deletions

View File

@ -1,17 +1,24 @@
import { MutationHook } from '@vercel/commerce/utils/types'
import useLogout, { UseLogout } from '@vercel/commerce/auth/use-logout'
import { useCustomer } from '../customer'
import { useCallback } from 'react'
import { setCustomerToken } from '../utils/token/customer-token'
export default useLogout as UseLogout<typeof handler>
export const handler: MutationHook<any> = {
fetchOptions: {
query: '',
url: '',
},
async fetcher() {
return null
useHook: () => () => {
const { mutate } = useCustomer()
return useCallback(
async function logout() {
setCustomerToken(null)
await mutate()
},
[mutate]
)
},
useHook:
({ fetch }) =>
() =>
async () => {},
}

View File

@ -4,6 +4,7 @@ import useCustomer, {
} from '@vercel/commerce/customer/use-customer'
import { getCustomerRoute } from '../utils/token/customer-route'
import { normalizeCustomer } from '../utils/normalize/normalize-customer'
import { getCustomerToken } from '../utils/token/customer-token'
import { CustomerHook } from '@vercel/commerce/types/customer'
export default useCustomer as UseCustomer<typeof handler>
@ -14,12 +15,14 @@ export const handler: SWRHook<CustomerHook> = {
method: 'GET',
},
fetcher: async ({ options, fetch }) => {
const syliusCustomer = await fetch({
url: getCustomerRoute() ?? '',
method: options.method,
})
const customer = normalizeCustomer(syliusCustomer)
return customer
if (getCustomerToken()) {
const syliusCustomer = await fetch({
url: getCustomerRoute() ?? '',
method: options.method,
})
return normalizeCustomer(syliusCustomer)
}
return null
},
useHook:
({ useData }) =>