From 3c5048a01bb6d1aaad5fefe4f1f7ba1443452223 Mon Sep 17 00:00:00 2001
From: Michele Alberti <michele.alberti@cea.fr>
Date: Thu, 9 Jul 2020 12:29:38 +0200
Subject: [PATCH] [ivette] Dynamic visibility of column for after values.

---
 ivette/src/renderer/Values.tsx | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/ivette/src/renderer/Values.tsx b/ivette/src/renderer/Values.tsx
index 026aff692c1..dfa9bb6468f 100644
--- a/ivette/src/renderer/Values.tsx
+++ b/ivette/src/renderer/Values.tsx
@@ -52,10 +52,12 @@ const Values = () => {
 
   const evaValues = States.useSyncArray(Eva.values).getArray();
   const selectMarker = States.useSelection()[0]?.current?.marker;
-  const t = States.useRequest(Eva.getValues, selectMarker);
   const markerInfo = States.useSyncArray(Ast.markerInfo).getArray();
   const [name, setName] = React.useState<string | undefined>(undefined);
   const [alarmOccurred, setAlarmOccurred] = React.useState(false);
+  const [unchanged, setUnchanged] = React.useState(false);
+
+  States.useRequest(Eva.getValues, selectMarker);
 
   React.useLayoutEffect(() => {
     if (selectMarker && evaValues) {
@@ -65,26 +67,30 @@ const Values = () => {
         switch (selectMarkerInfo.kind) {
           case 'expression':
           case 'lvalue':
-            setName(selectMarkerInfo.descr);
             evaValues.forEach((i) => model.setData(i.key, i));
+            setName(selectMarkerInfo.descr);
             setAlarmOccurred(evaValues.some((e) => e.alarm));
+            setUnchanged(evaValues.some((e) => e.value_after === 'unchanged'));
             break;
           case 'declaration':
-            setName(selectMarkerInfo.name);
             evaValues.forEach((i) => model.setData(i.key, i));
+            setName(selectMarkerInfo.name);
             setAlarmOccurred(evaValues.some((e) => e.alarm));
+            setUnchanged(evaValues.some((e) => e.value_after === 'unchanged'));
             break;
           default:
             setName(undefined);
             setAlarmOccurred(false);
+            setUnchanged(false);
         }
       }
+      model.reload();
     } else {
       setName(undefined);
       setAlarmOccurred(false);
+      setUnchanged(false);
     }
-    model.reload();
-  }, [model, evaValues, t, selectMarker, markerInfo]);
+  }, [evaValues, selectMarker, markerInfo, model]);
 
   // Component
   return (
@@ -102,7 +108,7 @@ const Values = () => {
         <ColumnAlarm visible={alarmOccurred} />
         <Column
           id="value_after"
-          visible={!!name}
+          visible={!!name && !unchanged}
           label={name && `${name} (after)`}
           title="Values inferred by Eva just after the selected point"
           disableSort
-- 
GitLab