diff --git a/src/components/ConfigPanel.tsx b/src/components/ConfigPanel.tsx index 6d993b3..1e8e9b6 100644 --- a/src/components/ConfigPanel.tsx +++ b/src/components/ConfigPanel.tsx @@ -18,6 +18,10 @@ interface Field { export function ConfigPanel({ node, onClose, onUpdateNode }: ConfigPanelProps) { const { models } = useFlowStore(); const [newField, setNewField] = useState({ name: "", type: "string" }); + const [newQueryField, setNewQueryField] = useState({ + name: "", + type: "string", + }); if (!node) return null; @@ -47,7 +51,9 @@ export function ConfigPanel({ node, onClose, onUpdateNode }: ConfigPanelProps) { }; const addField = (arrayName: string) => { - const array = [...(node.data[arrayName] || []), newField]; + if (!newField.name.trim()) return; + + const array = [...(node.data[arrayName] || []), { ...newField }]; onUpdateNode(node.id, { ...node.data, [arrayName]: array, @@ -199,20 +205,16 @@ export function ConfigPanel({ node, onClose, onUpdateNode }: ConfigPanelProps) { -
- {node.data.fields && node.data.fields.length > 0 ? ( - node.data.fields.map((field: Field) => ( + {node.data.fields?.length > 0 && ( +
+ {node.data.fields.map((field: Field) => (
{field.name}: {field.type} {field.validation ? ` (${field.validation})` : ""}
- )) - ) : ( -
- No body fields defined -
- )} -
+ ))} +
+ )} {(node.data.fields || []).map((field: Field, index: number) => (
Date
-
- {node.data.queryFields && node.data.queryFields.length > 0 ? ( - node.data.queryFields.map((field: Field) => ( + {node.data.queryFields?.length > 0 && ( +
+ {node.data.queryFields.map((field: Field) => (
{field.name}: {field.type} {field.validation ? ` (${field.validation})` : ""}
- )) - ) : ( -
- No query fields defined -
- )} -
+ ))} +
+ )} {(node.data.queryFields || []).map( (field: Field, index: number) => (
@@ -338,17 +340,17 @@ export function ConfigPanel({ node, onClose, onUpdateNode }: ConfigPanelProps) {
- setNewField({ ...newField, name: e.target.value }) + setNewQueryField({ ...newQueryField, name: e.target.value }) } className="flex-1 p-2 border rounded text-sm" placeholder="New query param" />