aboutsummaryrefslogtreecommitdiff
path: root/modern/src/map/StatusView.js
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2020-10-24 16:42:29 -0700
committerAnton Tananaev <anton.tananaev@gmail.com>2020-10-24 16:42:29 -0700
commite9f0913d2b1b66764931b6c1235877a44e72890b (patch)
tree404241616fcd340dd5b8b16e699ac8c1e1be2bf1 /modern/src/map/StatusView.js
parent7806cb2d725ab1aa4f66db86bc376a027dda6df5 (diff)
downloadtrackermap-web-e9f0913d2b1b66764931b6c1235877a44e72890b.tar.gz
trackermap-web-e9f0913d2b1b66764931b6c1235877a44e72890b.tar.bz2
trackermap-web-e9f0913d2b1b66764931b6c1235877a44e72890b.zip
Refactor map implementation
Diffstat (limited to 'modern/src/map/StatusView.js')
-rw-r--r--modern/src/map/StatusView.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/modern/src/map/StatusView.js b/modern/src/map/StatusView.js
new file mode 100644
index 00000000..3a304263
--- /dev/null
+++ b/modern/src/map/StatusView.js
@@ -0,0 +1,30 @@
+import t from '../common/localization'
+import React from 'react';
+import { useSelector } from 'react-redux';
+import { formatPosition } from '../common/formatter';
+
+const StatusView = ({ deviceId, onShowDetails }) => {
+ const device = useSelector(state => state.devices.items[deviceId]);
+ const position = useSelector(state => state.positions.items[deviceId]);
+
+ const handleClick = e => {
+ e.preventDefault();
+ onShowDetails(position.id);
+ };
+
+ return (
+ <>
+ <b>{t('deviceStatus')}:</b> {formatPosition(device.status, 'status')}<br />
+ <b>{t('sharedLocation')}:</b> {formatPosition(position, 'latitude')} {formatPosition(position, 'longitude')}<br />
+ <b>{t('positionSpeed')}:</b> {formatPosition(position.speed, 'speed')}<br />
+ <b>{t('positionCourse')}:</b> {formatPosition(position.course, 'course')}<br />
+ <b>{t('positionDistance')}:</b> {formatPosition(position.attributes.totalDistance, 'distance')}<br />
+ {position.attributes.batteryLevel &&
+ <><b>{t('positionBattery')}:</b> {formatPosition(position.attributes.batteryLevel, 'batteryLevel')}<br /></>
+ }
+ <a href="#" onClick={handleClick}>{t('sharedShowDetails')}</a>
+ </>
+ );
+};
+
+export default StatusView;