2025-05-22 20:42:10 +08:00

44 lines
1.3 KiB
TypeScript

import type React from "react"
import type { Metadata } from "next"
import { Inter } from "next/font/google"
import "./globals.css"
import { ThemeProvider } from "@/components/theme-provider"
import { Toaster } from "@/components/ui/toaster"
import { AuthProvider } from "@/context/auth-context"
import { CartProvider } from "@/context/cart-context"
import { NotificationProvider } from "@/components/notification-provider"
import { Analytics } from "@vercel/analytics/react"
import { Suspense } from "react"
const inter = Inter({ subsets: ["latin"] })
export const metadata: Metadata = {
title: "图书管理系统",
description: "一个现代化的图书管理系统",
}
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode
}>) {
return (
<html lang="zh" suppressHydrationWarning>
<body className={inter.className}>
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
<AuthProvider>
<CartProvider>
<Suspense fallback={null}>
{children}
<Toaster />
<NotificationProvider />
<Analytics />
</Suspense>
</CartProvider>
</AuthProvider>
</ThemeProvider>
</body>
</html>
)
}