mirror of
https://github.com/vercel/commerce.git
synced 2025-07-04 04:01:21 +00:00
39 lines
964 B
TypeScript
39 lines
964 B
TypeScript
import * as React from 'react'
|
|
import { ReactNode } from 'react'
|
|
|
|
import {
|
|
CommerceConfig,
|
|
CommerceProvider as CoreCommerceProvider,
|
|
useCommerce as useCoreCommerce,
|
|
} from '@commerce'
|
|
|
|
import { provider } from './provider'
|
|
import type { Provider } from './provider'
|
|
import { requireConfigValue } from './isomorphicConfig'
|
|
|
|
export type SpreeProps = {
|
|
children: ReactNode
|
|
provider: Provider
|
|
config: SpreeConfig
|
|
} & SpreeConfig
|
|
|
|
export const spreeCommerceConfigDefaults: CommerceConfig = {
|
|
locale: requireConfigValue('defaultLocale'),
|
|
cartCookie: requireConfigValue('cartCookieName'),
|
|
}
|
|
|
|
export type SpreeConfig = CommerceConfig
|
|
|
|
export function CommerceProvider({ children, ...restProps }: SpreeProps) {
|
|
return (
|
|
<CoreCommerceProvider
|
|
provider={provider}
|
|
config={{ ...spreeCommerceConfigDefaults, ...restProps }}
|
|
>
|
|
{children}
|
|
</CoreCommerceProvider>
|
|
)
|
|
}
|
|
|
|
export const useCommerce = () => useCoreCommerce<Provider>()
|