mirror of
https://github.com/vercel/commerce.git
synced 2025-07-10 06:41:20 +00:00
Added util method for provider creation
This commit is contained in:
parent
760e26c35c
commit
f07b29c0f0
@ -1,23 +1,10 @@
|
||||
import {
|
||||
CommerceProvider as CoreCommerceProvider,
|
||||
CommerceProviderProps,
|
||||
useCommerce as useCoreCommerce,
|
||||
} from '@commerce'
|
||||
import { getCommerceProvider, useCommerce as useCoreCommerce } from '@commerce'
|
||||
import { bigcommerceProvider } from './provider'
|
||||
import type { BigcommerceProvider } from './provider'
|
||||
|
||||
export { bigcommerceProvider }
|
||||
export type { BigcommerceProvider }
|
||||
|
||||
export function CommerceProvider({
|
||||
children,
|
||||
...props
|
||||
}: CommerceProviderProps) {
|
||||
return (
|
||||
<CoreCommerceProvider provider={{ ...bigcommerceProvider, ...props }}>
|
||||
{children}
|
||||
</CoreCommerceProvider>
|
||||
)
|
||||
}
|
||||
export const CommerceProvider = getCommerceProvider(bigcommerceProvider)
|
||||
|
||||
export const useCommerce = () => useCoreCommerce<BigcommerceProvider>()
|
||||
|
@ -70,7 +70,7 @@ export type CommerceProviderProps = {
|
||||
children?: ReactNode
|
||||
} & Partial<CommerceConfig>
|
||||
|
||||
export function CommerceProvider<P extends Provider>({
|
||||
export function CoreCommerceProvider<P extends Provider>({
|
||||
provider,
|
||||
children,
|
||||
}: CommerceProps<P>) {
|
||||
@ -88,6 +88,19 @@ export function CommerceProvider<P extends Provider>({
|
||||
return <Commerce.Provider value={cfg}>{children}</Commerce.Provider>
|
||||
}
|
||||
|
||||
export function getCommerceProvider<P extends Provider>(provider: P) {
|
||||
return function CommerceProvider({
|
||||
children,
|
||||
...props
|
||||
}: CommerceProviderProps) {
|
||||
return (
|
||||
<CoreCommerceProvider provider={{ ...provider, ...props }}>
|
||||
{children}
|
||||
</CoreCommerceProvider>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export function useCommerce<P extends Provider>() {
|
||||
return useContext(Commerce) as CommerceContextValue<P>
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user