feat: 接入预览模式(Next.js Draft Mode)
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import { notFound } from "next/navigation";
|
||||
import type { Metadata } from "next";
|
||||
import { getBlogBySlug } from "@/services/blog.service";
|
||||
import { getPreviewOrFallback } from "@/services/preview.service";
|
||||
import { BlockRenderer } from "@/blocks/BlockRenderer";
|
||||
import type { BlogPageDetail } from "@/types/wagtail";
|
||||
|
||||
interface BlogDetailPageProps {
|
||||
params: Promise<{ slug: string }>;
|
||||
@@ -17,7 +19,11 @@ export async function generateMetadata({
|
||||
|
||||
export default async function BlogDetailPage({ params }: BlogDetailPageProps) {
|
||||
const { slug } = await params;
|
||||
const post = await getBlogBySlug(slug).catch(() => null);
|
||||
const post = await getPreviewOrFallback<BlogPageDetail>(
|
||||
"blog.blogpage",
|
||||
"body,intro,published_at",
|
||||
() => getBlogBySlug(slug).catch(() => null),
|
||||
);
|
||||
|
||||
if (!post) {
|
||||
notFound();
|
||||
|
||||
Reference in New Issue
Block a user