Skip to content
Snippets Groups Projects
Commit 6e5230bd authored by Michele Alberti's avatar Michele Alberti
Browse files

[ivette] First try to render ColumnAlarm only when needed.

parent 9f1260b6
No related branches found
No related tags found
No related merge requests found
...@@ -27,7 +27,7 @@ const ColumnCallstack = () => Column({ ...@@ -27,7 +27,7 @@ const ColumnCallstack = () => Column({
render: (cs: Eva.callstack) => <Label label={cs.short} title={cs.full} />, render: (cs: Eva.callstack) => <Label label={cs.short} title={cs.full} />,
}); });
const ColumnAlarm = () => Column({ const ColumnAlarm = (props: { visible: boolean }) => Column({
id: 'alarm', id: 'alarm',
label: 'Alarm', label: 'Alarm',
title: 'Did the evaluation emit an alarm?', title: 'Did the evaluation emit an alarm?',
...@@ -35,6 +35,7 @@ const ColumnAlarm = () => Column({ ...@@ -35,6 +35,7 @@ const ColumnAlarm = () => Column({
width: 26, width: 26,
fixed: true, fixed: true,
icon: 'WARNING', icon: 'WARNING',
visible: props.visible,
render: (alarm: boolean) => <>{alarm && <Icon id="ATTENTION" />}</>, render: (alarm: boolean) => <>{alarm && <Icon id="ATTENTION" />}</>,
}); });
...@@ -54,8 +55,9 @@ const Values = () => { ...@@ -54,8 +55,9 @@ const Values = () => {
const t = States.useRequest(Eva.getValues, selectMarker); const t = States.useRequest(Eva.getValues, selectMarker);
const markerInfo = States.useSyncArray(Ast.markerInfo).getArray(); const markerInfo = States.useSyncArray(Ast.markerInfo).getArray();
const [name, setName] = React.useState<string | undefined>(undefined); const [name, setName] = React.useState<string | undefined>(undefined);
const [alarmOccurred, setAlarmOccurred] = React.useState(false);
React.useEffect(() => { React.useLayoutEffect(() => {
if (selectMarker && evaValues) { if (selectMarker && evaValues) {
model.removeAllData(); model.removeAllData();
const selectMarkerInfo = markerInfo.find((e) => e.key === selectMarker); const selectMarkerInfo = markerInfo.find((e) => e.key === selectMarker);
...@@ -65,17 +67,21 @@ const Values = () => { ...@@ -65,17 +67,21 @@ const Values = () => {
case 'lvalue': case 'lvalue':
setName(selectMarkerInfo.descr); setName(selectMarkerInfo.descr);
evaValues.forEach((i) => model.setData(i.key, i)); evaValues.forEach((i) => model.setData(i.key, i));
setAlarmOccurred(evaValues.some((e) => e.alarm));
break; break;
case 'declaration': case 'declaration':
setName(selectMarkerInfo.name); setName(selectMarkerInfo.name);
evaValues.forEach((i) => model.setData(i.key, i)); evaValues.forEach((i) => model.setData(i.key, i));
setAlarmOccurred(evaValues.some((e) => e.alarm));
break; break;
default: default:
setName(undefined); setName(undefined);
setAlarmOccurred(false);
} }
} }
} else { } else {
setName(undefined); setName(undefined);
setAlarmOccurred(false);
} }
model.reload(); model.reload();
}, [model, evaValues, t, selectMarker, markerInfo]); }, [model, evaValues, t, selectMarker, markerInfo]);
...@@ -93,7 +99,7 @@ const Values = () => { ...@@ -93,7 +99,7 @@ const Values = () => {
disableSort disableSort
fill fill
/> />
<ColumnAlarm /> <ColumnAlarm visible={alarmOccurred} />
<Column <Column
id="value_after" id="value_after"
visible={!!name} visible={!!name}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment