layout.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import { AntdRegistry } from "@ant-design/nextjs-registry";
  2. import type { Metadata } from "next";
  3. import { Geist, Geist_Mono } from "next/font/google";
  4. import "@wangeditor/editor/dist/css/style.css";
  5. import "./globals.css";
  6. import { App, ConfigProvider } from "antd";
  7. import zhCN from "antd/locale/zh_CN";
  8. import { Suspense } from "react";
  9. import { AuthProvider } from "@/contexts/AuthContext";
  10. import { GlobalConstsProvider } from "@/contexts/GlobalConstsContext";
  11. const geistSans = Geist({
  12. variable: "--font-geist-sans",
  13. subsets: ["latin"],
  14. });
  15. const geistMono = Geist_Mono({
  16. variable: "--font-geist-mono",
  17. subsets: ["latin"],
  18. });
  19. export const metadata: Metadata = {
  20. title: "Gami OP - 运营管理后台",
  21. description: "Gami operation platform",
  22. };
  23. export default function RootLayout({
  24. children,
  25. }: Readonly<{
  26. children: React.ReactNode;
  27. }>) {
  28. return (
  29. <html lang="zh-CN">
  30. <body
  31. className={`${geistSans.variable} ${geistMono.variable} antialiased`}
  32. >
  33. <Suspense>
  34. <AntdRegistry>
  35. <ConfigProvider
  36. locale={zhCN}
  37. theme={{
  38. token: {
  39. colorPrimary: "#1890ff",
  40. },
  41. // cssVar: true,
  42. }}
  43. >
  44. <App>
  45. <AuthProvider>
  46. <GlobalConstsProvider>{children}</GlobalConstsProvider>
  47. </AuthProvider>
  48. </App>
  49. </ConfigProvider>
  50. </AntdRegistry>
  51. </Suspense>
  52. </body>
  53. </html>
  54. );
  55. }