"use client" import {useEffect, useMemo} from "react" import {useQuery} from "@tanstack/react-query" import {Loader2} from "lucide-react" import {useRouter} from "next/navigation" import {motion} from "motion/react" import {Tabs, TabsContent, TabsList, TabsTrigger} from "@/components/ui/tabs" import {useAuth} from "@/components/providers/auth-provider" import {TemplatesManager} from "@/components/common/settings/templates" import {AdminService} from "@/lib/services" import type {SystemConfig} from "@/lib/services/admin" import {SystemStatusManager} from "@/components/common/admin/status" import {SecurityTab} from "./security-tab" import {SystemTab} from "./system-tab" import {OtherTab} from "./other-tab" import {InfoTab} from "./info-tab" function systemConfigMap(configs: SystemConfig[]) { return configs.reduce>((accumulator, config) => { accumulator[config.key] = config return accumulator }, {}) } export function SystemSettingsMain() { const { user, loading } = useAuth() const router = useRouter() const systemConfigsQuery = useQuery({ queryKey: ["admin", "system-configs"], queryFn: () => AdminService.listSystemConfigs("system"), enabled: !!user?.is_admin, }) const authSourcesQuery = useQuery({ queryKey: ["auth", "sources"], queryFn: () => AdminService.listAuthSources(), enabled: !!user?.is_admin, }) const configs = useMemo( () => systemConfigMap(systemConfigsQuery.data ?? []), [systemConfigsQuery.data], ) useEffect(() => { if (!loading && (!user || !user.is_admin)) { router.replace("/settings/profile") } }, [user, loading, router]) if (loading || !user || !user.is_admin) { return (
) } return ( 安全设置 运营设置 系统设置 其他设置 系统状态 系统信息 ) }