import { redirect } from "next/navigation"; import Link from "next/link"; import { cookies } from "next/headers"; import { authCookieHeader } from "@/lib/cookies"; import { getMeCached } from "@/lib/serverData"; import { fetchNotifications } from "@/lib/api"; import Pagination from "@/components/Pagination"; import NotificationsClient from "./NotificationsClient"; interface NotificationsPageProps { searchParams: Promise<{ page?: string }>; } // SSR 直出通知列表:F5 直接看到内容,不再先渲染"正在加载…" export default async function NotificationsPage({ searchParams }: NotificationsPageProps) { const sp = await searchParams; const page = Math.max(1, parseInt(sp.page || "1", 10) || 1); const cookie = authCookieHeader(await cookies()); const me = await getMeCached(cookie || undefined); if (!me.user) { redirect(`/login?redirect=${encodeURIComponent(`/notifications`)}`); } let data = null; let loadError = false; try { data = await fetchNotifications(page, cookie); } catch { loadError = true; } return (
通知加载失败
网络异常,请稍后重试
重新加载