Spaces:
Paused
Paused
| /* eslint-disable @next/next/no-page-custom-font */ | |
| import "./styles/globals.scss"; | |
| import "./styles/markdown.scss"; | |
| import "./styles/highlight.scss"; | |
| import { getClientConfig } from "./config/client"; | |
| import type { Metadata, Viewport } from "next"; | |
| import { SpeedInsights } from "@vercel/speed-insights/next"; | |
| import { GoogleTagManager, GoogleAnalytics } from "@next/third-parties/google"; | |
| import { getServerSideConfig } from "./config/server"; | |
| export const metadata: Metadata = { | |
| title: "NextChat", | |
| description: "Your personal ChatGPT Chat Bot.", | |
| appleWebApp: { | |
| title: "NextChat", | |
| statusBarStyle: "default", | |
| }, | |
| }; | |
| export const viewport: Viewport = { | |
| width: "device-width", | |
| initialScale: 1, | |
| maximumScale: 1, | |
| themeColor: [ | |
| { media: "(prefers-color-scheme: light)", color: "#fafafa" }, | |
| { media: "(prefers-color-scheme: dark)", color: "#151515" }, | |
| ], | |
| }; | |
| export default function RootLayout({ | |
| children, | |
| }: { | |
| children: React.ReactNode; | |
| }) { | |
| const serverConfig = getServerSideConfig(); | |
| return ( | |
| <html lang="en"> | |
| <head> | |
| <meta name="config" content={JSON.stringify(getClientConfig())} /> | |
| <meta | |
| name="viewport" | |
| content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" | |
| /> | |
| <link | |
| rel="manifest" | |
| href="/site.webmanifest" | |
| crossOrigin="use-credentials" | |
| ></link> | |
| <script src="/serviceWorkerRegister.js" defer></script> | |
| </head> | |
| <body> | |
| {children} | |
| {serverConfig?.isVercel && ( | |
| <> | |
| <SpeedInsights /> | |
| </> | |
| )} | |
| {serverConfig?.gtmId && ( | |
| <> | |
| <GoogleTagManager gtmId={serverConfig.gtmId} /> | |
| </> | |
| )} | |
| {serverConfig?.gaId && ( | |
| <> | |
| <GoogleAnalytics gaId={serverConfig.gaId} /> | |
| </> | |
| )} | |
| </body> | |
| </html> | |
| ); | |
| } | |