diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2020-10-24 16:42:29 -0700 |
---|---|---|
committer | Anton Tananaev <anton.tananaev@gmail.com> | 2020-10-24 16:42:29 -0700 |
commit | e9f0913d2b1b66764931b6c1235877a44e72890b (patch) | |
tree | 404241616fcd340dd5b8b16e699ac8c1e1be2bf1 /modern/src/map/StatusView.js | |
parent | 7806cb2d725ab1aa4f66db86bc376a027dda6df5 (diff) | |
download | trackermap-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.js | 30 |
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; |