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 {
|
import {
|
||||||
CommerceConfig,
|
CommerceConfig,
|
||||||
CommerceProvider as CoreCommerceProvider,
|
getCommerceProvider,
|
||||||
useCommerce as useCoreCommerce,
|
useCommerce as useCoreCommerce,
|
||||||
} from '@commerce'
|
} from '@commerce'
|
||||||
import { elasticpathProvider } from './provider'
|
import { elasticpathProvider } from './provider'
|
||||||
@ -10,27 +9,5 @@ import type { ElasticpathProvider } from './provider'
|
|||||||
export { elasticpathProvider }
|
export { elasticpathProvider }
|
||||||
export type { ElasticpathProvider }
|
export type { ElasticpathProvider }
|
||||||
|
|
||||||
export const elasticpathConfig: CommerceConfig = {
|
export const CommerceProvider = getCommerceProvider(elasticpathProvider)
|
||||||
locale: 'en-us',
|
export const useCommerce = () => useCoreCommerce<ElasticpathProvider>()
|
||||||
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 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 useLogout } from './auth/use-logout'
|
||||||
import { handler as useSignup } from './auth/use-signup'
|
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'
|
import {fetcher} from './fetcher'
|
||||||
|
|
||||||
export const elasticpathProvider = {
|
export const elasticpathProvider = {
|
||||||
@ -26,7 +30,18 @@ export const elasticpathProvider = {
|
|||||||
useAddItem: useWishlistAddItem,
|
useAddItem: useWishlistAddItem,
|
||||||
useRemoveItem: useWishlistRemoveItem,
|
useRemoveItem: useWishlistRemoveItem,
|
||||||
},
|
},
|
||||||
customer: { useCustomer },
|
checkout: {
|
||||||
|
useCheckout,
|
||||||
|
},
|
||||||
|
customer: {
|
||||||
|
useCustomer,
|
||||||
|
card: {
|
||||||
|
useCards
|
||||||
|
},
|
||||||
|
address: {
|
||||||
|
useAddresses
|
||||||
|
}
|
||||||
|
},
|
||||||
products: { useSearch },
|
products: { useSearch },
|
||||||
auth: { useLogin, useLogout, useSignup },
|
auth: { useLogin, useLogout, useSignup },
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user