From 868a6881bba9107eaf25e2b055dec55bf1fda42d Mon Sep 17 00:00:00 2001 From: Stephen Smith Date: Fri, 21 Oct 2022 16:03:24 -0400 Subject: [PATCH] 16073: Avoid clearing output definitions when mounts disappear while process executes Arvados-DCO-1.1-Signed-off-by: Stephen Smith --- src/views/process-panel/process-panel-root.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/views/process-panel/process-panel-root.tsx b/src/views/process-panel/process-panel-root.tsx index 6b88e261..5dd7c6d0 100644 --- a/src/views/process-panel/process-panel-root.tsx +++ b/src/views/process-panel/process-panel-root.tsx @@ -70,6 +70,7 @@ export const ProcessPanelRoot = withStyles(styles)( ({ process, auth, processLogsPanel, fetchOutputs, ...props }: ProcessPanelRootProps) => { const [outputDetails, setOutputs] = useState(undefined); + const [outputDefinitions, setOutputDefinitions] = useState([]); const [rawInputs, setInputs] = useState(undefined); const [processedOutputs, setProcessedOutputs] = useState(undefined); @@ -85,6 +86,7 @@ export const ProcessPanelRoot = withStyles(styles)( // Resets state when changing processes React.useEffect(() => { setOutputs(undefined); + setOutputDefinitions([]); setInputs(undefined); setProcessedOutputs(undefined); setProcessedInputs(undefined); @@ -100,7 +102,11 @@ export const ProcessPanelRoot = withStyles(styles)( // Format raw output into ProcessIOParameter[] when it changes React.useEffect(() => { if (outputDetails !== undefined && outputDetails.rawOutputs && containerRequest) { - const outputDefinitions = getOutputParameters(containerRequest); + const newOutputDefinitions = getOutputParameters(containerRequest); + // Avoid setting output definitions back to [] when mounts briefly go missing + if (newOutputDefinitions.length) { + setOutputDefinitions(newOutputDefinitions); + } setProcessedOutputs(formatOutputData(outputDefinitions, outputDetails.rawOutputs, outputDetails.pdh, auth)); } }, [outputDetails, auth, containerRequest]); -- 2.30.2