'use client' import React, { createContext, useContext, useRef, type PropsWithChildren, } from 'react' // https://dev.to/ivandotv/mobx-server-side-rendering-with-next-js-4m18 import { enableStaticRendering } from 'mobx-react-lite' enableStaticRendering(typeof window === "undefined") import type CommerceService from '../types/commerce-service' import type { CommerceConfig } from '../types' import { getInstance } from './impls/standalone' const CommerceContext = createContext(undefined) const useCommerce = (): CommerceService => { return useContext(CommerceContext) as CommerceService } const CommerceProvider: React.FC = ({ children, config }) => { // TODO: Inject Promo fixture here from siteDef const service = getInstance(config) const valueRef = useRef(service) return ( {children} ) } export { useCommerce, CommerceProvider }