From 7bb816ad03621ee6a179c9471c3646928868dcdb Mon Sep 17 00:00:00 2001 From: musistudio Date: Mon, 4 Aug 2025 13:18:57 +0800 Subject: [PATCH] fix ui: custom transformer error --- ui/src/components/ConfigProvider.tsx | 4 +-- ui/src/components/TransformerList.tsx | 2 +- ui/src/components/Transformers.tsx | 42 +++++++++++++-------------- ui/src/types.ts | 7 ++--- 4 files changed, 27 insertions(+), 28 deletions(-) diff --git a/ui/src/components/ConfigProvider.tsx b/ui/src/components/ConfigProvider.tsx index 0d40fbd..aae4d34 100644 --- a/ui/src/components/ConfigProvider.tsx +++ b/ui/src/components/ConfigProvider.tsx @@ -75,7 +75,7 @@ export function ConfigProvider({ children }: ConfigProviderProps) { APIKEY: typeof data.APIKEY === 'string' ? data.APIKEY : '', API_TIMEOUT_MS: typeof data.API_TIMEOUT_MS === 'string' ? data.API_TIMEOUT_MS : '600000', PROXY_URL: typeof data.PROXY_URL === 'string' ? data.PROXY_URL : '', - Transformers: Array.isArray(data.Transformers) ? data.Transformers : [], + transformers: Array.isArray(data.transformers) ? data.transformers : [], Providers: Array.isArray(data.Providers) ? data.Providers : [], Router: data.Router && typeof data.Router === 'object' ? { default: typeof data.Router.default === 'string' ? data.Router.default : '', @@ -109,7 +109,7 @@ export function ConfigProvider({ children }: ConfigProviderProps) { APIKEY: '', API_TIMEOUT_MS: '600000', PROXY_URL: '', - Transformers: [], + transformers: [], Providers: [], Router: { default: '', diff --git a/ui/src/components/TransformerList.tsx b/ui/src/components/TransformerList.tsx index 61ae82a..e46c8be 100644 --- a/ui/src/components/TransformerList.tsx +++ b/ui/src/components/TransformerList.tsx @@ -47,7 +47,7 @@ export function TransformerList({ transformers, onEdit, onRemove }: TransformerL const transformerPath = transformer.path || "Unnamed Transformer"; // Handle case where transformer.parameters might be null or undefined - const options = transformer.parameters || {}; + const options = transformer.options || {}; // Render parameters as tags in a single line const renderParameters = () => { diff --git a/ui/src/components/Transformers.tsx b/ui/src/components/Transformers.tsx index c772270..b4a41f5 100644 --- a/ui/src/components/Transformers.tsx +++ b/ui/src/components/Transformers.tsx @@ -21,7 +21,7 @@ export function Transformers() { const { config, setConfig } = useConfig(); const [editingTransformerIndex, setEditingTransformerIndex] = useState(null); const [deletingTransformerIndex, setDeletingTransformerIndex] = useState(null); - const [newTransformer, setNewTransformer] = useState<{ name: string; path: string; project: string; parameters: { [key: string]: string } } | null>(null); + const [newTransformer, setNewTransformer] = useState<{ name?: string; path: string; options: { [key: string]: string } } | null>(null); // Handle case where config is null or undefined if (!config) { @@ -38,10 +38,10 @@ export function Transformers() { } // Validate config.Transformers to ensure it's an array - const validTransformers = Array.isArray(config.Transformers) ? config.Transformers : []; + const validTransformers = Array.isArray(config.transformers) ? config.transformers : []; const handleAddTransformer = () => { - const newTransformer = { name: "", path: "", project: "", parameters: {} }; + const newTransformer = { name: "", path: "", options: {} }; setNewTransformer(newTransformer); setEditingTransformerIndex(validTransformers.length); // Use the length as index for the new item }; @@ -49,7 +49,7 @@ export function Transformers() { const handleRemoveTransformer = (index: number) => { const newTransformers = [...validTransformers]; newTransformers.splice(index, 1); - setConfig({ ...config, Transformers: newTransformers }); + setConfig({ ...config, transformers: newTransformers }); setDeletingTransformerIndex(null); }; @@ -58,17 +58,17 @@ export function Transformers() { // Editing an existing transformer const newTransformers = [...validTransformers]; if (parameterKey !== undefined) { - newTransformers[index].parameters![parameterKey] = value; + newTransformers[index].options![parameterKey] = value; } else { (newTransformers[index] as unknown as Record)[field] = value; } - setConfig({ ...config, Transformers: newTransformers }); + setConfig({ ...config, transformers: newTransformers }); } else { // Editing the new transformer if (newTransformer) { const updatedTransformer = { ...newTransformer }; if (parameterKey !== undefined) { - updatedTransformer.parameters![parameterKey] = value; + updatedTransformer.options![parameterKey] = value; } else { (updatedTransformer as Record)[field] = value; } @@ -87,7 +87,7 @@ export function Transformers() { if (newTransformer && editingTransformerIndex === validTransformers.length) { // Saving a new transformer const newTransformers = [...validTransformers, newTransformer]; - setConfig({ ...config, Transformers: newTransformers }); + setConfig({ ...config, transformers: newTransformers }); } // Close the dialog setEditingTransformerIndex(null); @@ -137,16 +137,16 @@ export function Transformers() { variant="outline" size="sm" onClick={() => { - const parameters = editingTransformer.parameters || {}; + const parameters = editingTransformer.options || {}; const newKey = `param${Object.keys(parameters).length + 1}`; if (editingTransformerIndex !== null) { const newParameters = { ...parameters, [newKey]: "" }; if (editingTransformerIndex < validTransformers.length) { const newTransformers = [...validTransformers]; - newTransformers[editingTransformerIndex].parameters = newParameters; - setConfig({ ...config, Transformers: newTransformers }); + newTransformers[editingTransformerIndex].options = newParameters; + setConfig({ ...config, transformers: newTransformers }); } else if (newTransformer) { - setNewTransformer({ ...newTransformer, parameters: newParameters }); + setNewTransformer({ ...newTransformer, options: newParameters }); } } }} @@ -154,22 +154,22 @@ export function Transformers() { - {Object.entries(editingTransformer.parameters || {}).map(([key, value]) => ( + {Object.entries(editingTransformer.options || {}).map(([key, value]) => (
{ - const parameters = editingTransformer.parameters || {}; + const parameters = editingTransformer.options || {}; const newParameters = { ...parameters }; delete newParameters[key]; newParameters[e.target.value] = value; if (editingTransformerIndex !== null) { if (editingTransformerIndex < validTransformers.length) { const newTransformers = [...validTransformers]; - newTransformers[editingTransformerIndex].parameters = newParameters; - setConfig({ ...config, Transformers: newTransformers }); + newTransformers[editingTransformerIndex].options = newParameters; + setConfig({ ...config, transformers: newTransformers }); } else if (newTransformer) { - setNewTransformer({ ...newTransformer, parameters: newParameters }); + setNewTransformer({ ...newTransformer, options: newParameters }); } } }} @@ -189,15 +189,15 @@ export function Transformers() { size="icon" onClick={() => { if (editingTransformerIndex !== null) { - const parameters = editingTransformer.parameters || {}; + const parameters = editingTransformer.options || {}; const newParameters = { ...parameters }; delete newParameters[key]; if (editingTransformerIndex < validTransformers.length) { const newTransformers = [...validTransformers]; - newTransformers[editingTransformerIndex].parameters = newParameters; - setConfig({ ...config, Transformers: newTransformers }); + newTransformers[editingTransformerIndex].options = newParameters; + setConfig({ ...config, transformers: newTransformers }); } else if (newTransformer) { - setNewTransformer({ ...newTransformer, parameters: newParameters }); + setNewTransformer({ ...newTransformer, options: newParameters }); } } }} diff --git a/ui/src/types.ts b/ui/src/types.ts index 470bc11..5edd5ae 100644 --- a/ui/src/types.ts +++ b/ui/src/types.ts @@ -22,16 +22,15 @@ export interface RouterConfig { } export interface Transformer { - name: string; + name?: string; path: string; - project: string; - parameters?: Record; + options?: Record; } export interface Config { Providers: Provider[]; Router: RouterConfig; - Transformers: Transformer[]; + transformers: Transformer[]; // Top-level settings LOG: boolean; CLAUDE_PATH: string;