import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import { toast } from "sonner"; import { Switch } from "@/components/ui/switch"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { settingsApi, type LogConfig } from "@/lib/api/settings"; const LOG_LEVELS = ["error", "warn", "info", "debug", "trace"] as const; export function LogConfigPanel() { const { t } = useTranslation(); const [config, setConfig] = useState({ enabled: true, level: "info", }); const [isLoading, setIsLoading] = useState(true); useEffect(() => { settingsApi .getLogConfig() .then(setConfig) .catch((e) => console.error("Failed to load log config:", e)) .finally(() => setIsLoading(false)); }, []); const handleChange = async (updates: Partial) => { const newConfig = { ...config, ...updates }; setConfig(newConfig); try { await settingsApi.setLogConfig(newConfig); } catch (e) { console.error("Failed to save log config:", e); toast.error(String(e)); setConfig(config); } }; if (isLoading) return null; return (

{t("settings.advanced.logConfig.enabledDescription")}

handleChange({ enabled: checked })} />

{t("settings.advanced.logConfig.levelDescription")}

{/* 日志级别说明 */}

{t("settings.advanced.logConfig.levelHint")}

error -{" "} {t("settings.advanced.logConfig.levelDesc.error")}

warn -{" "} {t("settings.advanced.logConfig.levelDesc.warn")}

info -{" "} {t("settings.advanced.logConfig.levelDesc.info")}

debug -{" "} {t("settings.advanced.logConfig.levelDesc.debug")}

trace -{" "} {t("settings.advanced.logConfig.levelDesc.trace")}

); }