import React, { useState, useEffect } from "react"; import { CodexAuthSection, CodexConfigSection } from "./CodexConfigSections"; import { CodexCommonConfigModal } from "./CodexCommonConfigModal"; interface CodexConfigEditorProps { authValue: string; configValue: string; onAuthChange: (value: string) => void; onConfigChange: (value: string) => void; onAuthBlur?: () => void; useCommonConfig: boolean; onCommonConfigToggle: (checked: boolean) => void; commonConfigSnippet: string; onCommonConfigSnippetChange: (value: string) => void; commonConfigError: string; authError: string; configError: string; // config.toml 错误提示 } const CodexConfigEditor: React.FC = ({ authValue, configValue, onAuthChange, onConfigChange, onAuthBlur, useCommonConfig, onCommonConfigToggle, commonConfigSnippet, onCommonConfigSnippetChange, commonConfigError, authError, configError, }) => { const [isCommonConfigModalOpen, setIsCommonConfigModalOpen] = useState(false); // Auto-open common config modal if there's an error useEffect(() => { if (commonConfigError && !isCommonConfigModalOpen) { setIsCommonConfigModalOpen(true); } }, [commonConfigError, isCommonConfigModalOpen]); return (
{/* Auth JSON Section */} {/* Config TOML Section */} setIsCommonConfigModalOpen(true)} commonConfigError={commonConfigError} configError={configError} /> {/* Common Config Modal */} setIsCommonConfigModalOpen(false)} value={commonConfigSnippet} onChange={onCommonConfigSnippetChange} error={commonConfigError} />
); }; export default CodexConfigEditor;