mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2024-11-27 08:53:17 +08:00
72 lines
1.9 KiB
TypeScript
72 lines
1.9 KiB
TypeScript
/* 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 { getServerSideConfig } from "./config/server";
|
|
import { GoogleTagManager, GoogleAnalytics } from "@next/third-parties/google";
|
|
const serverConfig = getServerSideConfig();
|
|
|
|
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;
|
|
}) {
|
|
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>
|
|
);
|
|
}
|