import "server-only" import { cache } from "react" import { BookingFlowConfigContextProvider } from "./bookingFlowConfigContext" export type BookingFlowConfig = { bookingCodeEnabled: boolean } const getRef = cache(() => ({ current: undefined as BookingFlowConfig | undefined, })) function setBookingFlowConfig(newConfig: BookingFlowConfig) { getRef().current = newConfig } export function getBookingFlowConfig(): BookingFlowConfig { const contextConfig = getRef().current if (!contextConfig) { throw new Error("BookingFlowConfig not set") } return contextConfig } /* * Sets up both a server side context and a client side context * for the booking flow config. */ export async function BookingFlowConfig({ children, config, }: { children: React.ReactNode config: BookingFlowConfig }) { setBookingFlowConfig(config) return ( {children} ) }