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 : '',
|
APIKEY: typeof data.APIKEY === 'string' ? data.APIKEY : '',
|
||||||
API_TIMEOUT_MS: typeof data.API_TIMEOUT_MS === 'string' ? data.API_TIMEOUT_MS : '600000',
|
API_TIMEOUT_MS: typeof data.API_TIMEOUT_MS === 'string' ? data.API_TIMEOUT_MS : '600000',
|
||||||
PROXY_URL: typeof data.PROXY_URL === 'string' ? data.PROXY_URL : '',
|
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 : [],
|
Providers: Array.isArray(data.Providers) ? data.Providers : [],
|
||||||
Router: data.Router && typeof data.Router === 'object' ? {
|
Router: data.Router && typeof data.Router === 'object' ? {
|
||||||
default: typeof data.Router.default === 'string' ? data.Router.default : '',
|
default: typeof data.Router.default === 'string' ? data.Router.default : '',
|
||||||
@@ -109,7 +109,7 @@ export function ConfigProvider({ children }: ConfigProviderProps) {
|
|||||||
APIKEY: '',
|
APIKEY: '',
|
||||||
API_TIMEOUT_MS: '600000',
|
API_TIMEOUT_MS: '600000',
|
||||||
PROXY_URL: '',
|
PROXY_URL: '',
|
||||||
Transformers: [],
|
transformers: [],
|
||||||
Providers: [],
|
Providers: [],
|
||||||
Router: {
|
Router: {
|
||||||
default: '',
|
default: '',
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export function TransformerList({ transformers, onEdit, onRemove }: TransformerL
|
|||||||
const transformerPath = transformer.path || "Unnamed Transformer";
|
const transformerPath = transformer.path || "Unnamed Transformer";
|
||||||
|
|
||||||
// Handle case where transformer.parameters might be null or undefined
|
// 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
|
// Render parameters as tags in a single line
|
||||||
const renderParameters = () => {
|
const renderParameters = () => {
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export function Transformers() {
|
|||||||
const { config, setConfig } = useConfig();
|
const { config, setConfig } = useConfig();
|
||||||
const [editingTransformerIndex, setEditingTransformerIndex] = useState<number | null>(null);
|
const [editingTransformerIndex, setEditingTransformerIndex] = useState<number | null>(null);
|
||||||
const [deletingTransformerIndex, setDeletingTransformerIndex] = 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
|
// Handle case where config is null or undefined
|
||||||
if (!config) {
|
if (!config) {
|
||||||
@@ -38,10 +38,10 @@ export function Transformers() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Validate config.Transformers to ensure it's an array
|
// 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 handleAddTransformer = () => {
|
||||||
const newTransformer = { name: "", path: "", project: "", parameters: {} };
|
const newTransformer = { name: "", path: "", options: {} };
|
||||||
setNewTransformer(newTransformer);
|
setNewTransformer(newTransformer);
|
||||||
setEditingTransformerIndex(validTransformers.length); // Use the length as index for the new item
|
setEditingTransformerIndex(validTransformers.length); // Use the length as index for the new item
|
||||||
};
|
};
|
||||||
@@ -49,7 +49,7 @@ export function Transformers() {
|
|||||||
const handleRemoveTransformer = (index: number) => {
|
const handleRemoveTransformer = (index: number) => {
|
||||||
const newTransformers = [...validTransformers];
|
const newTransformers = [...validTransformers];
|
||||||
newTransformers.splice(index, 1);
|
newTransformers.splice(index, 1);
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
setDeletingTransformerIndex(null);
|
setDeletingTransformerIndex(null);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -58,17 +58,17 @@ export function Transformers() {
|
|||||||
// Editing an existing transformer
|
// Editing an existing transformer
|
||||||
const newTransformers = [...validTransformers];
|
const newTransformers = [...validTransformers];
|
||||||
if (parameterKey !== undefined) {
|
if (parameterKey !== undefined) {
|
||||||
newTransformers[index].parameters![parameterKey] = value;
|
newTransformers[index].options![parameterKey] = value;
|
||||||
} else {
|
} else {
|
||||||
(newTransformers[index] as unknown as Record<string, unknown>)[field] = value;
|
(newTransformers[index] as unknown as Record<string, unknown>)[field] = value;
|
||||||
}
|
}
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
} else {
|
} else {
|
||||||
// Editing the new transformer
|
// Editing the new transformer
|
||||||
if (newTransformer) {
|
if (newTransformer) {
|
||||||
const updatedTransformer = { ...newTransformer };
|
const updatedTransformer = { ...newTransformer };
|
||||||
if (parameterKey !== undefined) {
|
if (parameterKey !== undefined) {
|
||||||
updatedTransformer.parameters![parameterKey] = value;
|
updatedTransformer.options![parameterKey] = value;
|
||||||
} else {
|
} else {
|
||||||
(updatedTransformer as Record<string, unknown>)[field] = value;
|
(updatedTransformer as Record<string, unknown>)[field] = value;
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ export function Transformers() {
|
|||||||
if (newTransformer && editingTransformerIndex === validTransformers.length) {
|
if (newTransformer && editingTransformerIndex === validTransformers.length) {
|
||||||
// Saving a new transformer
|
// Saving a new transformer
|
||||||
const newTransformers = [...validTransformers, newTransformer];
|
const newTransformers = [...validTransformers, newTransformer];
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
}
|
}
|
||||||
// Close the dialog
|
// Close the dialog
|
||||||
setEditingTransformerIndex(null);
|
setEditingTransformerIndex(null);
|
||||||
@@ -137,16 +137,16 @@ export function Transformers() {
|
|||||||
variant="outline"
|
variant="outline"
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
const parameters = editingTransformer.parameters || {};
|
const parameters = editingTransformer.options || {};
|
||||||
const newKey = `param${Object.keys(parameters).length + 1}`;
|
const newKey = `param${Object.keys(parameters).length + 1}`;
|
||||||
if (editingTransformerIndex !== null) {
|
if (editingTransformerIndex !== null) {
|
||||||
const newParameters = { ...parameters, [newKey]: "" };
|
const newParameters = { ...parameters, [newKey]: "" };
|
||||||
if (editingTransformerIndex < validTransformers.length) {
|
if (editingTransformerIndex < validTransformers.length) {
|
||||||
const newTransformers = [...validTransformers];
|
const newTransformers = [...validTransformers];
|
||||||
newTransformers[editingTransformerIndex].parameters = newParameters;
|
newTransformers[editingTransformerIndex].options = newParameters;
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
} else if (newTransformer) {
|
} else if (newTransformer) {
|
||||||
setNewTransformer({ ...newTransformer, parameters: newParameters });
|
setNewTransformer({ ...newTransformer, options: newParameters });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
@@ -154,22 +154,22 @@ export function Transformers() {
|
|||||||
<Plus className="h-4 w-4" />
|
<Plus className="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
{Object.entries(editingTransformer.parameters || {}).map(([key, value]) => (
|
{Object.entries(editingTransformer.options || {}).map(([key, value]) => (
|
||||||
<div key={key} className="flex items-center gap-2">
|
<div key={key} className="flex items-center gap-2">
|
||||||
<Input
|
<Input
|
||||||
value={key}
|
value={key}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
const parameters = editingTransformer.parameters || {};
|
const parameters = editingTransformer.options || {};
|
||||||
const newParameters = { ...parameters };
|
const newParameters = { ...parameters };
|
||||||
delete newParameters[key];
|
delete newParameters[key];
|
||||||
newParameters[e.target.value] = value;
|
newParameters[e.target.value] = value;
|
||||||
if (editingTransformerIndex !== null) {
|
if (editingTransformerIndex !== null) {
|
||||||
if (editingTransformerIndex < validTransformers.length) {
|
if (editingTransformerIndex < validTransformers.length) {
|
||||||
const newTransformers = [...validTransformers];
|
const newTransformers = [...validTransformers];
|
||||||
newTransformers[editingTransformerIndex].parameters = newParameters;
|
newTransformers[editingTransformerIndex].options = newParameters;
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
} else if (newTransformer) {
|
} else if (newTransformer) {
|
||||||
setNewTransformer({ ...newTransformer, parameters: newParameters });
|
setNewTransformer({ ...newTransformer, options: newParameters });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
@@ -189,15 +189,15 @@ export function Transformers() {
|
|||||||
size="icon"
|
size="icon"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (editingTransformerIndex !== null) {
|
if (editingTransformerIndex !== null) {
|
||||||
const parameters = editingTransformer.parameters || {};
|
const parameters = editingTransformer.options || {};
|
||||||
const newParameters = { ...parameters };
|
const newParameters = { ...parameters };
|
||||||
delete newParameters[key];
|
delete newParameters[key];
|
||||||
if (editingTransformerIndex < validTransformers.length) {
|
if (editingTransformerIndex < validTransformers.length) {
|
||||||
const newTransformers = [...validTransformers];
|
const newTransformers = [...validTransformers];
|
||||||
newTransformers[editingTransformerIndex].parameters = newParameters;
|
newTransformers[editingTransformerIndex].options = newParameters;
|
||||||
setConfig({ ...config, Transformers: newTransformers });
|
setConfig({ ...config, transformers: newTransformers });
|
||||||
} else if (newTransformer) {
|
} else if (newTransformer) {
|
||||||
setNewTransformer({ ...newTransformer, parameters: newParameters });
|
setNewTransformer({ ...newTransformer, options: newParameters });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
|
|||||||
@@ -22,16 +22,15 @@ export interface RouterConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface Transformer {
|
export interface Transformer {
|
||||||
name: string;
|
name?: string;
|
||||||
path: string;
|
path: string;
|
||||||
project: string;
|
options?: Record<string, any>;
|
||||||
parameters?: Record<string, any>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Config {
|
export interface Config {
|
||||||
Providers: Provider[];
|
Providers: Provider[];
|
||||||
Router: RouterConfig;
|
Router: RouterConfig;
|
||||||
Transformers: Transformer[];
|
transformers: Transformer[];
|
||||||
// Top-level settings
|
// Top-level settings
|
||||||
LOG: boolean;
|
LOG: boolean;
|
||||||
CLAUDE_PATH: string;
|
CLAUDE_PATH: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user