import React, { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import JsonEditor from "@/components/JsonEditor"; interface CodexAuthSectionProps { value: string; onChange: (value: string) => void; onBlur?: () => void; error?: string; } /** * CodexAuthSection - Auth JSON editor section */ export const CodexAuthSection: React.FC = ({ value, onChange, onBlur, error, }) => { const { t } = useTranslation(); const [isDarkMode, setIsDarkMode] = useState(false); useEffect(() => { setIsDarkMode(document.documentElement.classList.contains("dark")); const observer = new MutationObserver(() => { setIsDarkMode(document.documentElement.classList.contains("dark")); }); observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"], }); return () => observer.disconnect(); }, []); const handleChange = (newValue: string) => { onChange(newValue); if (onBlur) { onBlur(); } }; return (
{error && (

{error}

)} {!error && (

{t("codexConfig.authJsonHint")}

)}
); }; interface CodexConfigSectionProps { value: string; onChange: (value: string) => void; useCommonConfig: boolean; onCommonConfigToggle: (checked: boolean) => void; onEditCommonConfig: () => void; commonConfigError?: string; configError?: string; } /** * CodexConfigSection - Config TOML editor section */ export const CodexConfigSection: React.FC = ({ value, onChange, useCommonConfig, onCommonConfigToggle, onEditCommonConfig, commonConfigError, configError, }) => { const { t } = useTranslation(); const [isDarkMode, setIsDarkMode] = useState(false); useEffect(() => { setIsDarkMode(document.documentElement.classList.contains("dark")); const observer = new MutationObserver(() => { setIsDarkMode(document.documentElement.classList.contains("dark")); }); observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"], }); return () => observer.disconnect(); }, []); return (
{commonConfigError && (

{commonConfigError}

)} {configError && (

{configError}

)} {!configError && (

{t("codexConfig.configTomlHint")}

)}
); };