Files
freedakgmail 5c8c70097c 0.8.0.0
2025-12-21 17:32:33 +08:00

64 lines
1.7 KiB
TypeScript

import type React from "react"
import type { Metadata, Viewport } from "next"
import { Geist, Geist_Mono } from "next/font/google"
// import { Analytics } from "@vercel/analytics/next"
import "./globals.css"
import { FamilyProvider } from "@/context/family-context"
import { PWAProvider } from "@/components/pwa/pwa-provider"
import { SessionProvider } from "@/components/providers/session-provider"
import { DialogProvider } from "@/components/ui/alert-dialog-custom"
const _geist = Geist({ subsets: ["latin"] })
const _geistMono = Geist_Mono({ subsets: ["latin"] })
export const metadata: Metadata = {
title: "华夏家谱 - 中国家族树管理系统",
description: "现代化的中国家族树管理系统,支持多用户协作、权限管理、数据导入导出等功能",
generator: "v0.app",
manifest: "/manifest.json",
appleWebApp: {
capable: true,
statusBarStyle: "default",
title: "华夏家谱",
},
icons: {
icon: [
{
url: "/icon.svg",
type: "image/svg+xml",
},
],
apple: "/icon.svg",
},
}
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
maximumScale: 1,
userScalable: false,
}
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode
}>) {
return (
<html lang="zh-CN">
<body className={`font-serif antialiased`}>
<SessionProvider>
<DialogProvider>
<FamilyProvider>
<PWAProvider>
{children}
</PWAProvider>
</FamilyProvider>
</DialogProvider>
</SessionProvider>
{/* <Analytics /> */}
</body>
</html>
)
}