import { cookies } from "next/headers"; import { notFound, redirect } from "next/navigation"; import Link from "next/link"; import { ChevronRight } from "lucide-react"; import { authCookieHeader } from "@/lib/cookies"; import { getMeCached } from "@/lib/serverData"; import { fetchPostDetail } from "@/lib/api"; import { canModerateBoard } from "@/lib/roles"; import EditPostClient from "./EditPostClient"; interface PageProps { params: Promise<{ id: string }>; } export default async function EditPostPage({ params }: PageProps) { const { id } = await params; const cookie = authCookieHeader(await cookies()); const me = await getMeCached(cookie || undefined); if (!me.user) { redirect(`/login?redirect=${encodeURIComponent(`/post/${id}/edit`)}`); } let post: Awaited>["post"]; try { ({ post } = await fetchPostDetail(id, cookie)); } catch { notFound(); } const allowed = me.user.id === post.user.id || canModerateBoard(me.user, post.board_id); if (!allowed) { redirect(`/post/${id}`); } return (
); }