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 +
); } }