29 lines
861 B
TypeScript
29 lines
861 B
TypeScript
import type { Metadata } from "next";
|
|
import { redirect } from "next/navigation";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "站点设置",
|
|
};
|
|
|
|
interface PageProps {
|
|
searchParams: Promise<{ section?: string }>;
|
|
}
|
|
|
|
const LEGACY: Record<string, string> = {
|
|
basic: "/admin/settings/basic",
|
|
content: "/admin/settings/access",
|
|
security: "/admin/settings/access",
|
|
access: "/admin/settings/access",
|
|
mail: "/admin/settings/mail",
|
|
storage: "/admin/settings/storage",
|
|
filter: "/admin/settings/filter",
|
|
maintenance: "/admin/settings/maintenance",
|
|
};
|
|
|
|
/** /admin/settings 与旧 ?section= 统一跳到子路由 */
|
|
export default async function SettingsIndexPage({ searchParams }: PageProps) {
|
|
const sp = await searchParams;
|
|
const raw = typeof sp.section === "string" ? sp.section.trim() : "";
|
|
redirect(LEGACY[raw] || "/admin/settings/basic");
|
|
}
|