File size: 1,516 Bytes
bd4057b a318da0 bd4057b c78ff81 50fbee1 c78ff81 a318da0 bd4057b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import type { Metadata, Viewport } from "next";
import { Toaster } from "sonner";
import "./globals.css";
import { AppShell } from "@/components/app-shell";
export const metadata: Metadata = {
title: "ChatGPT 号池管理",
description: "ChatGPT account pool management dashboard",
};
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
maximumScale: 1,
userScalable: false,
themeColor: "#f0ebe3",
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="zh-CN" suppressHydrationWarning>
<body
className="antialiased"
style={{
fontFamily:
'"SF Pro Display","SF Pro Text","PingFang SC","Microsoft YaHei","Helvetica Neue",sans-serif',
}}
>
<Toaster
className="app-toaster"
position="top-center"
expand={false}
visibleToasts={4}
gap={10}
offset={96}
mobileOffset={{ top: 140, right: 16, bottom: 16, left: 16 }}
toastOptions={{
duration: 3200,
classNames: {
toast: "app-toast",
title: "app-toast-title",
description: "app-toast-description",
actionButton: "app-toast-action",
cancelButton: "app-toast-cancel",
closeButton: "app-toast-close",
},
}}
/>
<AppShell>{children}</AppShell>
</body>
</html>
);
}
|