import { Metadata } from "next" import { listCartOptions, retrieveCart } from "@lib/data/cart" import { retrieveCustomer } from "@lib/data/customer" import { getBaseURL } from "@lib/util/env" import { StoreCartShippingOption } from "@medusajs/types" import { DynamicLayoutRenderer } from "../../../vibentec/renderer" import { LayoutContext, LayoutComponentNode } from "../../../vibentec/component-map" import { loadLayoutConfig } from "vibentec/configloader" import { getRegion } from "@lib/data/regions" export const metadata: Metadata = { metadataBase: new URL(getBaseURL()), } export default async function PageLayout(props: { children: React.ReactNode params: Promise<{ countryCode: string }> }) { const params = await props.params const { countryCode } = params const region = await getRegion(countryCode) const customer = await retrieveCustomer() const cart = await retrieveCart() let shippingOptions: StoreCartShippingOption[] = [] if (cart) { const { shipping_options } = await listCartOptions() shippingOptions = shipping_options } const nodes: LayoutComponentNode[] = await loadLayoutConfig() const context: LayoutContext = { customer, cart, shippingOptions, contentChildren: props.children, countryCode, region, } return }