import React, { useEffect, useState } from "react"; import { Save } from "lucide-react"; import { useTranslation } from "react-i18next"; import { FullScreenPanel } from "@/components/common/FullScreenPanel"; import { Button } from "@/components/ui/button"; import JsonEditor from "@/components/JsonEditor"; interface CodexCommonConfigModalProps { isOpen: boolean; onClose: () => void; value: string; onChange: (value: string) => void; error?: string; } /** * CodexCommonConfigModal - Common Codex configuration editor modal * Allows editing of common TOML configuration shared across providers */ export const CodexCommonConfigModal: React.FC = ({ isOpen, onClose, value, onChange, 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(); }, []); return ( } >

{t("codexConfig.commonConfigHint")}

{error && (

{error}

)}
); };