From d3364ed010544928b553b253b0a9b70f8eb4c667 Mon Sep 17 00:00:00 2001 From: Markus Grigull Date: Thu, 7 Jun 2018 21:10:30 +0200 Subject: [PATCH] Add labels to simulator state --- src/components/table.js | 4 ++-- src/containers/simulators.js | 28 +++++++++++++--------------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/components/table.js b/src/components/table.js index 9d593fe..1c1910d 100644 --- a/src/components/table.js +++ b/src/components/table.js @@ -85,10 +85,10 @@ class CustomTable extends Component { var labelContent = data[labelKey]; if (child.props.labelModifier) { - labelContent = child.props.labelModifier(labelContent); + labelContent = child.props.labelModifier(labelContent, data); } - cell.push( ); + cell.push( ); } if (child.props.dataIndex) { diff --git a/src/containers/simulators.js b/src/containers/simulators.js index 48c9b2b..c8e5140 100644 --- a/src/containers/simulators.js +++ b/src/containers/simulators.js @@ -165,27 +165,21 @@ class Simulators extends Component { } } - labelSimulatorState = state => { - if (state === 'unknown' || state === 'shutdown') { - return - + isSimulatorOutdated(simulator) { + const fiveMinutes = 5 * 60 * 1000; - {state} - ; - } - - return - - - {state} - ; + return Date.now() - new Date(simulator.stateUpdatedAt) > fiveMinutes; } isSimulatorOnline(state) { return state !== 'shutdown' && state !== 'unknown'; } - stateLabelStyle = state => { + stateLabelStyle = (state, simulator) => { + if (this.isSimulatorOutdated(simulator)) { + return 'default'; + } + if (this.isSimulatorOnline(state)) { return 'success'; } @@ -193,7 +187,11 @@ class Simulators extends Component { return 'danger'; } - stateLabelModifier = state => { + stateLabelModifier = (state, simulator) => { + if (this.isSimulatorOutdated(simulator)) { + return 'unknown'; + } + if (this.isSimulatorOnline(state)) { return 'online'; }