import type { Metadata, Viewport } from 'next'; import './globals.css'; import { UIProvider } from '../lib/theme'; export const metadata: Metadata = { title: 'Pangolin · Account', description: 'Manage your subscription, redeem codes, view usage, referrals and account security.', }; export const viewport: Viewport = { width: 'device-width', initialScale: 1, }; // basePath 前缀(与 next.config.mjs 同源)。public/ 的根绝对资源(colors_and_type.css) // 不会被 Next 自动加 basePath,需手动拼,否则挂到 /user/ 下会 404。 const BASE_PATH = process.env.NEXT_PUBLIC_BASE_PATH ?? '/user'; export default function RootLayout({ children }: { children: React.ReactNode }) { return (
{/* 首屏渲染前据 localStorage 设好 data-theme/lang,避免明暗主题(整页配色)在 挂载后才应用造成的 FOUC 闪烁。/user/* CSP 允许 'unsafe-inline' 脚本,故直接内联。 与官网 Site.astro 的 no-FOUC 脚本同法(键名用用户中心的 pg_uc_theme/pg_uc_lang)。 */} {/* 设计令牌单一真相源,原样链入(SRI 由构建期注入) */} {/* eslint-disable-next-line @next/next/no-css-tags */}