Files
wagtailcms-frontend/app/page.tsx
T

40 lines
1.4 KiB
TypeScript

import type { Metadata } from "next";
import { getHomePage } from "@/services/page.service";
import { getPreviewOrFallback } from "@/services/preview.service";
import { BlockRenderer } from "@/blocks/BlockRenderer";
import type { HomePageDetail } from "@/types/wagtail";
import { createPageMetadata, getPageSEO } from "@/services/seo.service";
import PageSEO from "@/components/layout/PageSEO";
export async function generateMetadata(): Promise<Metadata> {
return createPageMetadata(await getPageSEO("home.HomePage").catch(() => null), "首页");
}
export default async function Home() {
const homePage = await getPreviewOrFallback<HomePageDetail>(
"home.homepage",
"body,seo_title_override,seo_description_override",
() =>
getHomePage().catch((err) => {
console.error("getHomePage failed:", err);
return null;
}),
);
if (!homePage) {
return (
<div className="mx-auto max-w-3xl px-6 py-32 text-center">
<h1 className="mb-4 text-3xl font-semibold text-slate-900">
尚未连接到 Wagtail CMS
</h1>
<p className="text-slate-600">
请确认后端服务已启动,并在 <code>.env.local</code> 中配置了{" "}
<code>NEXT_PUBLIC_API_URL</code>(默认 http://localhost:8000)。
</p>
</div>
);
}
return <><PageSEO type="home.HomePage" /><BlockRenderer blocks={homePage.body} /></>;
}