feat: add real-time TOML validation for Codex config
- Add smol-toml dependency for client-side TOML parsing - Create useCodexTomlValidation hook with 500ms debounce - Display validation errors below config.toml textarea - Trigger validation on onChange for immediate user feedback - Backend validation remains as fallback for data integrity
This commit is contained in:
@@ -33,15 +33,17 @@ interface CodexConfigEditorProps {
|
||||
|
||||
authError: string;
|
||||
|
||||
isCustomMode?: boolean; // 新增:是否为自定义模式
|
||||
configError: string; // config.toml 错误提示
|
||||
|
||||
onWebsiteUrlChange?: (url: string) => void; // 新增:更新网址回调
|
||||
isCustomMode?: boolean; // 是否为自定义模式
|
||||
|
||||
isTemplateModalOpen?: boolean; // 新增:模态框状态
|
||||
onWebsiteUrlChange?: (url: string) => void; // 更新网址回调
|
||||
|
||||
setIsTemplateModalOpen?: (open: boolean) => void; // 新增:设置模态框状态
|
||||
isTemplateModalOpen?: boolean; // 模态框状态
|
||||
|
||||
onNameChange?: (name: string) => void; // 新增:更新供应商名称回调
|
||||
setIsTemplateModalOpen?: (open: boolean) => void; // 设置模态框状态
|
||||
|
||||
onNameChange?: (name: string) => void; // 更新供应商名称回调
|
||||
}
|
||||
|
||||
const CodexConfigEditor: React.FC<CodexConfigEditorProps> = ({
|
||||
@@ -67,6 +69,8 @@ const CodexConfigEditor: React.FC<CodexConfigEditorProps> = ({
|
||||
|
||||
authError,
|
||||
|
||||
configError,
|
||||
|
||||
onWebsiteUrlChange,
|
||||
|
||||
onNameChange,
|
||||
@@ -324,6 +328,10 @@ const CodexConfigEditor: React.FC<CodexConfigEditorProps> = ({
|
||||
data-enable-grammarly="false"
|
||||
/>
|
||||
|
||||
{configError && (
|
||||
<p className="text-xs text-red-500 dark:text-red-400">{configError}</p>
|
||||
)}
|
||||
|
||||
<p className="text-xs text-gray-500 dark:text-gray-400">
|
||||
{t("codexConfig.configTomlHint")}
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user