fix ui: custom transformer error
This commit is contained in:
@@ -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: '',
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
@@ -21,7 +21,7 @@ export function Transformers() {
|
||||
const { config, setConfig } = useConfig();
|
||||
const [editingTransformerIndex, setEditingTransformerIndex] = useState<number | null>(null);
|
||||
const [deletingTransformerIndex, setDeletingTransformerIndex] = useState<number | null>(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<string, unknown>)[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<string, unknown>)[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() {
|
||||
<Plus className="h-4 w-4" />
|
||||
</Button>
|
||||
</div>
|
||||
{Object.entries(editingTransformer.parameters || {}).map(([key, value]) => (
|
||||
{Object.entries(editingTransformer.options || {}).map(([key, value]) => (
|
||||
<div key={key} className="flex items-center gap-2">
|
||||
<Input
|
||||
value={key}
|
||||
onChange={(e) => {
|
||||
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 });
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
@@ -22,16 +22,15 @@ export interface RouterConfig {
|
||||
}
|
||||
|
||||
export interface Transformer {
|
||||
name: string;
|
||||
name?: string;
|
||||
path: string;
|
||||
project: string;
|
||||
parameters?: Record<string, any>;
|
||||
options?: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface Config {
|
||||
Providers: Provider[];
|
||||
Router: RouterConfig;
|
||||
Transformers: Transformer[];
|
||||
transformers: Transformer[];
|
||||
// Top-level settings
|
||||
LOG: boolean;
|
||||
CLAUDE_PATH: string;
|
||||
|
||||
Reference in New Issue
Block a user