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() {