From a2010eef2d5988c0d61bff06ade6fd3e75a3a463 Mon Sep 17 00:00:00 2001 From: Sufi Kaur Date: Wed, 7 Aug 2024 15:03:32 -0700 Subject: [PATCH] changed logic to reset and set inputs changed for all types of inputs and resert when user runs the flowsheet --- .../ConfigInput/ConfigInput.js | 26 ++++++++++++++----- .../views/FlowsheetConfig/FlowsheetConfig.js | 10 +++++++ 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/electron/ui/src/views/FlowsheetConfig/ConfigInput/ConfigInput.js b/electron/ui/src/views/FlowsheetConfig/ConfigInput/ConfigInput.js index cf9346bb..f487bf71 100644 --- a/electron/ui/src/views/FlowsheetConfig/ConfigInput/ConfigInput.js +++ b/electron/ui/src/views/FlowsheetConfig/ConfigInput/ConfigInput.js @@ -68,12 +68,6 @@ export default function ConfigInput(props) { }) }, [flowsheetData.inputData]); - // this is bad - useEffect(() => { - setInputsChanged(true) - }, [displayData]) - - useEffect(() => { // console.log(`setting number of subprocesses current: ${numberOfSubprocesses.current}, max: ${numberOfSubprocesses.max}`) setCurrentNumberOfSubprocesses(numberOfSubprocesses.current) @@ -152,16 +146,34 @@ export default function ConfigInput(props) { const handleUpdateDisplayValue = (id, value) => { let tempFlowsheetData = { ...flowsheetData }; const inputs = getInputs(tempFlowsheetData) + console.debug('updating ' + id + ' with value ' + value + '. previous value was ' + inputs[id].value) inputs[id].value = value + + // if (outputs!= null || value != Number(outputs.exports[id].value).toFixed(outputs.exports[id].rounding)) { + setInputsChanged(true) + // } + // else { + // setInputsChanged(false) + + // // setAlteredInputs(alteredInputs().filter((_,i) => i !== id)) + // // setAlteredInputs(altertedInputs) + // } + } +// solved, solved and changed, only changed +// solved -> +// solved and changed, +// only changed + const handleUpdateFixed = (id, value, type) => { let tempFlowsheetData = {...flowsheetData} const inputs = getInputs(tempFlowsheetData); inputs[id].fixed = value; inputs[id].is_sweep = (type === "sweep"); updateFlowsheetData(tempFlowsheetData, null) + setInputsChanged(true) runButtonRef.current?.checkDisableRun() // checkDisableRun() } @@ -169,6 +181,7 @@ export default function ConfigInput(props) { const handleUpdateBounds = (id, value, bound) => { let tempFlowsheetData = {...flowsheetData} const inputs = getInputs(tempFlowsheetData) + setInputsChanged(true) inputs[id][bound] = value } @@ -176,6 +189,7 @@ export default function ConfigInput(props) { let tempFlowsheetData = {...flowsheetData} const inputs = getInputs(tempFlowsheetData) inputs[id].num_samples = value + setInputsChanged(true) console.debug('updating samples ' + id + ' with value ' + value + ' ' + inputs[id].num_samples) } /** diff --git a/electron/ui/src/views/FlowsheetConfig/FlowsheetConfig.js b/electron/ui/src/views/FlowsheetConfig/FlowsheetConfig.js index 30d7fd8a..7a7e516d 100644 --- a/electron/ui/src/views/FlowsheetConfig/FlowsheetConfig.js +++ b/electron/ui/src/views/FlowsheetConfig/FlowsheetConfig.js @@ -91,6 +91,8 @@ export default function FlowsheetConfig(props) { const [inputsChanged, setInputsChanged] = useState(false); + // const [alteredInputs, setAlteredInputs] = useState([]) + // const [dialogVisible, setDialogVisible] = useState(false); // const [pendingPath, setPendingPath] = useState(null); @@ -219,6 +221,7 @@ export default function FlowsheetConfig(props) { setFlowsheetData(tempFlowsheetData); setTabValue(1); setSolveDialogOpen(false); + setInputsChanged(false) } const handleError = (msg) => { @@ -308,6 +311,13 @@ export default function FlowsheetConfig(props) { } } + // useEffect(()=>{ + // if(alteredInputs.length >= 1) { + // setInputsChanged(true) + // } + + // }, [alteredInputs]) + console.log("Returning container for FlowsheetConfig. build_options=", flowsheetData.inputData.build_options, "isBuilt=", isBuilt, "loadingFlowsheetData=", loadingFlowsheetData); return (