import Link from "next/link"; import { notFound } from "next/navigation"; import { ArrowLeft, Bell } from "lucide-react"; import { AnnouncementReadMarker } from "@/components/announcement-read-marker"; import { PageHeader } from "@/components/page-header"; import { StatusPill } from "@/components/status-pill"; import { BackendError } from "@/lib/backend"; import { formatDateTime } from "@/lib/format"; import { getAnnouncementDetail } from "@/lib/mobile-data"; import type { AnnouncementSummary } from "@/lib/types"; type AnnouncementDetailPageProps = { params: Promise<{ id: string }>; }; const levelText: Record = { normal: "普通", important: "重要", urgent: "紧急" }; const levelTone: Record = { normal: "default", important: "warning", urgent: "danger" }; export default async function AnnouncementDetailPage({ params }: AnnouncementDetailPageProps) { const { id } = await params; let announcement: Awaited>; try { announcement = await getAnnouncementDetail(id); } catch (error) { if (error instanceof BackendError && error.status === 404) { notFound(); } throw error; } return (
返回公告
公告级别 {levelText[announcement.level]} {announcement.read ? "已读" : "未读"}
{announcement.content}
); }