mirror of
https://github.com/vercel/commerce.git
synced 2025-07-27 04:01:23 +00:00
Login, Sign Up, Log Out, and checkout & customer association
This commit is contained in:
@@ -1,23 +1,29 @@
|
||||
import type { HookFetcher } from '@commerce/utils/types'
|
||||
import type { SwrOptions } from '@commerce/utils/use-data'
|
||||
import useCommerceCustomer from '@commerce/use-customer'
|
||||
import getCustomerQuery from '@framework/utils/queries/get-customer-query'
|
||||
import { getCustomerToken } from '@framework/utils/customer-token'
|
||||
|
||||
const defaultOpts = {
|
||||
query: '/api/bigcommerce/customers',
|
||||
query: getCustomerQuery,
|
||||
}
|
||||
|
||||
export const fetcher: HookFetcher<Customer | null> = async (
|
||||
options,
|
||||
_,
|
||||
fetch
|
||||
) => {
|
||||
const data = await fetch<CustomerData | null>({ ...defaultOpts, ...options })
|
||||
return data?.customer ?? null
|
||||
export const fetcher: HookFetcher<any | null> = async (options, _, fetch) => {
|
||||
const customerAccessToken = getCustomerToken()
|
||||
if (customerAccessToken) {
|
||||
const data = await fetch<any | null>({
|
||||
...defaultOpts,
|
||||
...options,
|
||||
variables: { customerAccessToken },
|
||||
})
|
||||
return data?.customer ?? null
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
export function extendHook(
|
||||
customFetcher: typeof fetcher,
|
||||
swrOptions?: SwrOptions<Customer | null>
|
||||
swrOptions?: SwrOptions<any | null>
|
||||
) {
|
||||
const useCustomer = () => {
|
||||
return useCommerceCustomer(defaultOpts, [], customFetcher, {
|
||||
|
Reference in New Issue
Block a user