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 { settingsApi, type RectifierConfig } from "@/lib/api/settings"; export function RectifierConfigPanel() { const { t } = useTranslation(); const [config, setConfig] = useState({ enabled: true, requestThinkingSignature: true, requestThinkingBudget: true, }); const [isLoading, setIsLoading] = useState(true); useEffect(() => { settingsApi .getRectifierConfig() .then(setConfig) .catch((e) => console.error("Failed to load rectifier config:", e)) .finally(() => setIsLoading(false)); }, []); const handleChange = async (updates: Partial) => { const newConfig = { ...config, ...updates }; setConfig(newConfig); try { await settingsApi.setRectifierConfig(newConfig); } catch (e) { console.error("Failed to save rectifier config:", e); toast.error(String(e)); setConfig(config); } }; if (isLoading) return null; return (

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

handleChange({ enabled: checked })} />

{t("settings.advanced.rectifier.requestGroup")}

{t("settings.advanced.rectifier.thinkingSignatureDescription")}

handleChange({ requestThinkingSignature: checked }) } />

{t("settings.advanced.rectifier.thinkingBudgetDescription")}

handleChange({ requestThinkingBudget: checked }) } />
); }