diff --git a/src/widget/widget-factory.js b/src/widget/widget-factory.js
index 33cba20..cf48d67 100644
--- a/src/widget/widget-factory.js
+++ b/src/widget/widget-factory.js
@@ -202,7 +202,7 @@ class WidgetFactory {
widget.height = 100;
widget.customProperties.threshold_yellow = 1;
widget.customProperties.threshold_red = 2;
- widget.customProperties.ic = 1;
+ widget.customProperties.icID = 1;
default:
widget.width = 100;
diff --git a/src/widget/widget.js b/src/widget/widget.js
index d77d9fd..bca9e5b 100644
--- a/src/widget/widget.js
+++ b/src/widget/widget.js
@@ -227,6 +227,7 @@ class Widget extends React.Component {
} else if (widget.type === 'TimeOffset') {
return
}
diff --git a/src/widget/widgets/time-offset.js b/src/widget/widgets/time-offset.js
index 2ada456..a711742 100644
--- a/src/widget/widgets/time-offset.js
+++ b/src/widget/widgets/time-offset.js
@@ -24,23 +24,42 @@ class WidgetTimeOffset extends Component {
super(props);
this.state = {
- redOn: false,
- yellowOn: false,
- greenOn: true,
+ timeOffset: '',
+ icID: ''
};
}
static getDerivedStateFromProps(props, state){
+
+ if(typeof props.widget.customProperties.icID !== "undefined" && state.icID !== props.widget.customProperties.icID){
+ return {icID: props.widget.customProperties.icID};
+ }
+
+ if (props.data == null
+ || props.data[state.icID] == null
+ || props.data[state.icID].output == null
+ || props.data[state.icID].output.timestamp == null) {
+ return {timeOffset: ''};
+ }
+
+ let serverTime = props.data[state.icID].output.timestamp;
+ let localTime = Date.now();
+ let absoluteOffset = Math.abs(serverTime - localTime);
+ return {timeOffset: Number.parseFloat(absoluteOffset/1000).toPrecision(5)};
}
render() {
return (
+
+
Time offset:
+
{this.state.timeOffset}s
+
);
}
}