diff options
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; |