import { Toaster } from "@/components/ui/sonner" import { GlobalState } from "@/components/utility/global-state" import { Providers } from "@/components/utility/providers" import TranslationsProvider from "@/components/utility/translations-provider" import initTranslations from "@/lib/i18n" import { Database } from "@/supabase/types" import { createServerClient } from "@supabase/ssr" import { Metadata, Viewport } from "next" import { Inter } from "next/font/google" import { cookies } from "next/headers" import { ReactNode } from "react" import "./globals.css" const inter = Inter({ subsets: ["latin"] }) const APP_NAME = "Chatbot UI" const APP_DEFAULT_TITLE = "Chatbot UI" const APP_TITLE_TEMPLATE = "%s - Chatbot UI" const APP_DESCRIPTION = "Chabot UI PWA!" interface RootLayoutProps { children: ReactNode params: { locale: string } } export const metadata: Metadata = { applicationName: APP_NAME, title: { default: APP_DEFAULT_TITLE, template: APP_TITLE_TEMPLATE }, description: APP_DESCRIPTION, manifest: "/manifest.json", appleWebApp: { capable: true, statusBarStyle: "black", title: APP_DEFAULT_TITLE // startUpImage: [], }, formatDetection: { telephone: false }, openGraph: { type: "website", siteName: APP_NAME, title: { default: APP_DEFAULT_TITLE, template: APP_TITLE_TEMPLATE }, description: APP_DESCRIPTION }, twitter: { card: "summary", title: { default: APP_DEFAULT_TITLE, template: APP_TITLE_TEMPLATE }, description: APP_DESCRIPTION } } export const viewport: Viewport = { themeColor: "#000000" } const i18nNamespaces = ["translation"] export default async function RootLayout({ children, params: { locale } }: RootLayoutProps) { const cookieStore = cookies() const supabase = createServerClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, { cookies: { get(name: string) { return cookieStore.get(name)?.value } } } ) const session = (await supabase.auth.getSession()).data.session const { t, resources } = await initTranslations(locale, i18nNamespaces) console.log("layout.tsx..............locale: ", {locale}); return (
{session ? {children} : children}
) }