mirror of
https://github.com/vercel/commerce.git
synced 2025-05-18 07:26:59 +00:00
Adding checkout files
This commit is contained in:
parent
cad3ad7756
commit
737612656f
1
framework/elasticpath/api/endpoints/customer/address.ts
Normal file
1
framework/elasticpath/api/endpoints/customer/address.ts
Normal file
@ -0,0 +1 @@
|
||||
export default function noopApi(...args: any[]): void {}
|
1
framework/elasticpath/api/endpoints/customer/card.ts
Normal file
1
framework/elasticpath/api/endpoints/customer/card.ts
Normal file
@ -0,0 +1 @@
|
||||
export default function noopApi(...args: any[]): void {}
|
15
framework/elasticpath/customer/address/use-add-item.tsx
Normal file
15
framework/elasticpath/customer/address/use-add-item.tsx
Normal file
@ -0,0 +1,15 @@
|
||||
import useAddItem, { UseAddItem } from '@commerce/customer/address/use-add-item'
|
||||
import { MutationHook } from '@commerce/utils/types'
|
||||
|
||||
export default useAddItem as UseAddItem<typeof handler>
|
||||
|
||||
export const handler: MutationHook<any> = {
|
||||
fetchOptions: {
|
||||
query: '',
|
||||
},
|
||||
async fetcher({ input, options, fetch }) {},
|
||||
useHook:
|
||||
({ fetch }) =>
|
||||
() =>
|
||||
async () => ({}),
|
||||
}
|
35
framework/elasticpath/customer/address/use-addresses.tsx
Normal file
35
framework/elasticpath/customer/address/use-addresses.tsx
Normal file
@ -0,0 +1,35 @@
|
||||
import type { GetAddressesHook } from '@commerce/types/customer/address'
|
||||
|
||||
import { useMemo } from 'react'
|
||||
import { SWRHook } from '@commerce/utils/types'
|
||||
import useAddresses, {
|
||||
UseAddresses,
|
||||
} from '@commerce/customer/address/use-addresses'
|
||||
|
||||
export default useAddresses as UseAddresses<typeof handler>
|
||||
|
||||
export const handler: SWRHook<GetAddressesHook> = {
|
||||
fetchOptions: {
|
||||
url: '/api/customer/address',
|
||||
method: 'GET',
|
||||
},
|
||||
useHook: ({ useData }) =>
|
||||
function useHook(input) {
|
||||
const response = useData({
|
||||
swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },
|
||||
})
|
||||
|
||||
return useMemo(
|
||||
() =>
|
||||
Object.create(response, {
|
||||
isEmpty: {
|
||||
get() {
|
||||
return (response.data?.length ?? 0) <= 0
|
||||
},
|
||||
enumerable: true,
|
||||
},
|
||||
}),
|
||||
[response]
|
||||
)
|
||||
},
|
||||
}
|
15
framework/elasticpath/customer/card/use-add-item.tsx
Normal file
15
framework/elasticpath/customer/card/use-add-item.tsx
Normal file
@ -0,0 +1,15 @@
|
||||
import useAddItem, { UseAddItem } from '@commerce/customer/card/use-add-item'
|
||||
import { MutationHook } from '@commerce/utils/types'
|
||||
|
||||
export default useAddItem as UseAddItem<typeof handler>
|
||||
|
||||
export const handler: MutationHook<any> = {
|
||||
fetchOptions: {
|
||||
query: '',
|
||||
},
|
||||
async fetcher({ input, options, fetch }) {},
|
||||
useHook:
|
||||
({ fetch }) =>
|
||||
() =>
|
||||
async () => ({}),
|
||||
}
|
33
framework/elasticpath/customer/card/use-cards.tsx
Normal file
33
framework/elasticpath/customer/card/use-cards.tsx
Normal file
@ -0,0 +1,33 @@
|
||||
import type { GetCardsHook } from '@commerce/types/customer/card'
|
||||
|
||||
import { useMemo } from 'react'
|
||||
import { SWRHook } from '@commerce/utils/types'
|
||||
import useCard, { UseCards } from '@commerce/customer/card/use-cards'
|
||||
|
||||
export default useCard as UseCards<typeof handler>
|
||||
|
||||
export const handler: SWRHook<GetCardsHook> = {
|
||||
fetchOptions: {
|
||||
url: '/api/customer/card',
|
||||
method: 'GET',
|
||||
},
|
||||
useHook: ({ useData }) =>
|
||||
function useHook(input) {
|
||||
const response = useData({
|
||||
swrOptions: { revalidateOnFocus: false, ...input?.swrOptions },
|
||||
})
|
||||
|
||||
return useMemo(
|
||||
() =>
|
||||
Object.create(response, {
|
||||
isEmpty: {
|
||||
get() {
|
||||
return (response.data?.length ?? 0) <= 0
|
||||
},
|
||||
enumerable: true,
|
||||
},
|
||||
}),
|
||||
[response]
|
||||
)
|
||||
},
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
import type { ReactNode } from 'react'
|
||||
import {
|
||||
CommerceConfig,
|
||||
CommerceProvider as CoreCommerceProvider,
|
||||
getCommerceProvider,
|
||||
useCommerce as useCoreCommerce,
|
||||
} from '@commerce'
|
||||
import { elasticpathProvider } from './provider'
|
||||
@ -10,27 +9,5 @@ import type { ElasticpathProvider } from './provider'
|
||||
export { elasticpathProvider }
|
||||
export type { ElasticpathProvider }
|
||||
|
||||
export const elasticpathConfig: CommerceConfig = {
|
||||
locale: 'en-us',
|
||||
cartCookie: 'bc_cartId',
|
||||
}
|
||||
|
||||
export type ElasticpathConfig = Partial<CommerceConfig>
|
||||
|
||||
export type ElasticpathProps = {
|
||||
children?: ReactNode
|
||||
locale: string
|
||||
} & ElasticpathConfig
|
||||
|
||||
export function CommerceProvider({ children, ...config }: ElasticpathProps) {
|
||||
return (
|
||||
<CoreCommerceProvider
|
||||
provider={elasticpathProvider}
|
||||
config={{ ...elasticpathConfig, ...config }}
|
||||
>
|
||||
{children}
|
||||
</CoreCommerceProvider>
|
||||
)
|
||||
}
|
||||
|
||||
export const CommerceProvider = getCommerceProvider(elasticpathProvider)
|
||||
export const useCommerce = () => useCoreCommerce<ElasticpathProvider>()
|
@ -14,6 +14,10 @@ import { handler as useLogin } from './auth/use-login'
|
||||
import { handler as useLogout } from './auth/use-logout'
|
||||
import { handler as useSignup } from './auth/use-signup'
|
||||
|
||||
import { handler as useCheckout } from './checkout/use-checkout'
|
||||
import { handler as useCards } from './customer/card/use-cards'
|
||||
import { handler as useAddresses } from './customer/address/use-addresses'
|
||||
|
||||
import {fetcher} from './fetcher'
|
||||
|
||||
export const elasticpathProvider = {
|
||||
@ -26,7 +30,18 @@ export const elasticpathProvider = {
|
||||
useAddItem: useWishlistAddItem,
|
||||
useRemoveItem: useWishlistRemoveItem,
|
||||
},
|
||||
customer: { useCustomer },
|
||||
checkout: {
|
||||
useCheckout,
|
||||
},
|
||||
customer: {
|
||||
useCustomer,
|
||||
card: {
|
||||
useCards
|
||||
},
|
||||
address: {
|
||||
useAddresses
|
||||
}
|
||||
},
|
||||
products: { useSearch },
|
||||
auth: { useLogin, useLogout, useSignup },
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user