import type { Metadata } from 'next' import './globals.css' import Providers from './providers' import { prisma } from '@/lib/prisma' // 强制动态渲染,避免构建时数据库连接错误 export const dynamic = 'force-dynamic' async function getSystemSettings() { try { // 直接从数据库查询,避免网络请求超时问题 const settings = await prisma.systemSettings.findFirst({ select: { siteName: true, } }) return settings } catch (error) { console.error('Failed to fetch system settings:', error) } return null } export async function generateMetadata(): Promise { const settings = await getSystemSettings() return { title: settings?.siteName || 'FLNXI素材库', description: '3D素材分享平台', } } const themeInitScript = ` (function() { try { var storageKey = 'admin-theme-preference'; var classNameDark = 'dark'; var stored = typeof window !== 'undefined' ? window.localStorage.getItem(storageKey) : null; var prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; var theme = stored === 'light' || stored === 'dark' ? stored : (prefersDark ? 'dark' : 'light'); var root = document.documentElement; if (theme === 'dark') { root.classList.add(classNameDark); } else { root.classList.remove(classNameDark); } root.dataset.theme = theme; } catch (error) { console.warn('初始化主题失败', error); } })(); ` export default function RootLayout({ children, }: { children: React.ReactNode }) { return (