diff --git a/frontend/app/(main)/admin/settings/page-client.tsx b/frontend/app/(main)/admin/settings/page-client.tsx index 47e2fa43..f9d0e4be 100644 --- a/frontend/app/(main)/admin/settings/page-client.tsx +++ b/frontend/app/(main)/admin/settings/page-client.tsx @@ -7,7 +7,7 @@ import dynamic from "next/dynamic" import {useEffect, useMemo} from "react" import {useQuery} from "@tanstack/react-query" import {Loader2, Settings} from "lucide-react" -import {useRouter} from "next/navigation" +import {useRouter, useSearchParams} from "next/navigation" import {motion} from "motion/react" import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs" @@ -64,6 +64,17 @@ function systemConfigMap(configs: SystemConfig[]) { export function AdminSettingsPageClient() { const { user, loading } = useAuth() const router = useRouter() + const searchParams = useSearchParams() + + const activeTab = useMemo(() => { + const rawTab = searchParams.get("tab") + const validTabs = ["security", "operation", "system", "other", "status", "info"] + return rawTab && validTabs.includes(rawTab) ? rawTab : "security" + }, [searchParams]) + + const handleTabChange = (value: string) => { + router.push(`/admin/settings?tab=${value}`) + } const systemConfigsQuery = useQuery({ queryKey: ["admin", "system-configs"], @@ -103,7 +114,7 @@ export function AdminSettingsPageClient() {

系统设置

- + OpenFlare diff --git a/frontend/app/(main)/admin/settings/page.tsx b/frontend/app/(main)/admin/settings/page.tsx index 44be3884..f6c02526 100644 --- a/frontend/app/(main)/admin/settings/page.tsx +++ b/frontend/app/(main)/admin/settings/page.tsx @@ -1,8 +1,20 @@ // Copyright 2026 Arctel.net // SPDX-License-Identifier: Apache-2.0 +import {Suspense} from "react" +import {Loader2} from "lucide-react" import {AdminSettingsPageClient} from "./page-client" export default function AdminSettingsPage() { - return -} \ No newline at end of file + return ( + + + + } + > + + + ) +}