33 lines
1.6 KiB
TypeScript
33 lines
1.6 KiB
TypeScript
/**
|
|
* 整个App Router的根布局:统一页面元数据、全局CSS、应用反馈和CanvasRuntimeHost装配。
|
|
* 子页面/画布视图借用同一个宿主,普通路由切换不应各自创建另一份项目运行时。
|
|
*/
|
|
import { CanvasRuntimeHost } from "@/components/workspace/canvas-runtime-host";
|
|
import { AppFeedback } from "@/components/ui/app-feedback";
|
|
import type { Metadata } from "next";
|
|
import type { ReactNode } from "react";
|
|
import "@/styles/globals.css";
|
|
|
|
/** 标题/描述及不同色彩偏好的favicon,交给Next元数据系统生成页面头,不在客户端effect中改DOM。 */
|
|
export const metadata: Metadata = {
|
|
title: "啡跃 Endoleap · 让灵感有形",
|
|
description: "收藏灵感、连接知识,在自己的创作空间让想法慢慢成形。",
|
|
icons: {
|
|
icon: [
|
|
{ url: "/brand/icons/favicon.ico", type: "image/x-icon", sizes: "any" },
|
|
{ url: "/brand/png/icon-light/endoleap-32.png", type: "image/png", sizes: "32x32", media: "(prefers-color-scheme: light)" },
|
|
{ url: "/brand/png/icon-dark/endoleap-32.png", type: "image/png", sizes: "32x32", media: "(prefers-color-scheme: dark)" },
|
|
],
|
|
apple: [{ url: "/brand/icons/apple-touch-icon.png", sizes: "180x180", type: "image/png" }],
|
|
},
|
|
};
|
|
|
|
/** 服务端布局输出中文html/body壳;客户端反馈Provider包在runtime宿主外侧,供宿主状态提示使用。 */
|
|
export default function RootLayout({ children }: { children: ReactNode }) {
|
|
return (
|
|
<html lang="zh-CN" data-scroll-behavior="smooth">
|
|
<body><AppFeedback><CanvasRuntimeHost>{children}</CanvasRuntimeHost></AppFeedback></body>
|
|
</html>
|
|
);
|
|
}
|