From bd7524143086283efa21c52b49da2c14d5005b98 Mon Sep 17 00:00:00 2001 From: shaun210 Date: Fri, 24 Nov 2023 14:13:26 -0500 Subject: [PATCH] updated ScriptInput.js --- ui/src/components/PipelineEditor/PipelineEditor.js | 6 +++--- ui/src/components/form/AutoResizeTextArea.js | 2 +- ui/src/components/form/ScriptInput.js | 11 ++++++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ui/src/components/PipelineEditor/PipelineEditor.js b/ui/src/components/PipelineEditor/PipelineEditor.js index e01ec0b42..d064fb3c3 100644 --- a/ui/src/components/PipelineEditor/PipelineEditor.js +++ b/ui/src/components/PipelineEditor/PipelineEditor.js @@ -460,15 +460,15 @@ export default function PipelineEditor(props) { nodeId: getStepNodeId(outputNodeId), outputId: getStepOutput(outputNodeId), file: sourceNode.data.descriptionFile, + type: input.type } newPipelineOutputs.push(newNode); } - else if (sourceNode.type === 'constant') { // change this to 'else if' + else if (sourceNode.type === 'constant') { newNode = { description: 'A constant has no description', label: 'a constant has no label', - type: sourceNode.data.type, example: sourceNode.data.value, nodeId: getStepNodeId(outputNodeId), outputId: getStepOutput(outputNodeId), @@ -514,7 +514,7 @@ export default function PipelineEditor(props) { : newOutput; }) ); - }, [edges, reactFlowInstance, setOutputList, inputList]); + }, [edges, reactFlowInstance, setOutputList, inputList, onConstantValueChange]); const refreshOutputListOnInputNodeChange = useCallback(() => { diff --git a/ui/src/components/form/AutoResizeTextArea.js b/ui/src/components/form/AutoResizeTextArea.js index c5b4642e9..47b42f082 100644 --- a/ui/src/components/form/AutoResizeTextArea.js +++ b/ui/src/components/form/AutoResizeTextArea.js @@ -6,7 +6,7 @@ export default function AutoResizeTextArea({ defaultValue, keepWidth, className, const [value, setValue] = useState(defaultValue || ''); // Initialize with defaultValue prop useEffect(() => { - setValue(defaultValue || ''); // Update value when defaultValue prop changes + setValue(defaultValue || ''); }, [defaultValue]); useEffect(() => { diff --git a/ui/src/components/form/ScriptInput.js b/ui/src/components/form/ScriptInput.js index 5bc982849..a007f2dab 100644 --- a/ui/src/components/form/ScriptInput.js +++ b/ui/src/components/form/ScriptInput.js @@ -1,3 +1,4 @@ +import React, { useEffect, useState } from 'react'; import AutoResizeTextArea from './AutoResizeTextArea' export const ARRAY_PLACEHOLDER = 'Array (comma-separated)'; @@ -5,6 +6,12 @@ export const CONSTANT_PLACEHOLDER = 'Constant'; export default function ScriptInput({ type, value, options, onValueUpdated, cols, ...passedProps }) { + const [fieldValue, setFieldValue] = useState(value) + + useEffect(() => { + setFieldValue(value || '') + }, [value]) + if(type.endsWith('[]')) { return onValueUpdated(e.target.checked)} /> case 'int': - return setFieldValue(e.target.value)} onKeyDown={e => { if (e.key === "Enter") onValueUpdated(parseInt(e.target.value)) }} onBlur={e => onValueUpdated(parseInt(e.target.value))} />