import React, { useState, useEffect } from "react"; import { GeminiEnvSection, GeminiConfigSection } from "./GeminiConfigSections"; import { GeminiCommonConfigModal } from "./GeminiCommonConfigModal"; interface GeminiConfigEditorProps { envValue: string; configValue: string; onEnvChange: (value: string) => void; onConfigChange: (value: string) => void; onEnvBlur?: () => void; useCommonConfig: boolean; onCommonConfigToggle: (checked: boolean) => void; commonConfigSnippet: string; onCommonConfigSnippetChange: (value: string) => void; commonConfigError: string; envError: string; configError: string; onExtract?: () => void; isExtracting?: boolean; } const GeminiConfigEditor: React.FC = ({ envValue, configValue, onEnvChange, onConfigChange, onEnvBlur, useCommonConfig, onCommonConfigToggle, commonConfigSnippet, onCommonConfigSnippetChange, commonConfigError, envError, configError, onExtract, isExtracting, }) => { const [isCommonConfigModalOpen, setIsCommonConfigModalOpen] = useState(false); // Auto-open common config modal if there's an error useEffect(() => { if (commonConfigError && !isCommonConfigModalOpen) { setIsCommonConfigModalOpen(true); } }, [commonConfigError, isCommonConfigModalOpen]); return (
{/* Env Section */} setIsCommonConfigModalOpen(true)} commonConfigError={commonConfigError} /> {/* Config JSON Section */} {/* Common Config Modal */} setIsCommonConfigModalOpen(false)} value={commonConfigSnippet} onChange={onCommonConfigSnippetChange} error={commonConfigError} onExtract={onExtract} isExtracting={isExtracting} />
); }; export default GeminiConfigEditor;