import React, { useState } from 'react'; import { useSelector } from 'react-redux'; import { useHistory } from 'react-router-dom'; import { makeStyles, Button, Card, CardContent, Typography, CardActions, CardHeader, IconButton, Avatar, Table, TableBody, TableRow, TableCell, TableContainer, } from '@material-ui/core'; import CloseIcon from '@material-ui/icons/Close'; import ReplayIcon from '@material-ui/icons/Replay'; import PublishIcon from '@material-ui/icons/Publish'; import EditIcon from '@material-ui/icons/Edit'; import DeleteIcon from '@material-ui/icons/Delete'; import { useTranslation } from '../LocalizationProvider'; import { formatDistance, formatPosition, formatSpeed, formatStatus, } from '../common/formatter'; import RemoveDialog from '../RemoveDialog'; import { useAttributePreference } from '../common/preferences'; const useStyles = makeStyles((theme) => ({ paper: { width: '300px', }, negative: { color: theme.palette.colors.negative, }, listItemContainer: { maxWidth: '240px', }, icon: { width: '25px', height: '25px', filter: 'brightness(0) invert(1)', }, table: { '& .MuiTableCell-sizeSmall': { paddingLeft: theme.spacing(0.5), paddingRight: theme.spacing(0.5), }, }, cell: { borderBottom: 'none', }, })); const StatusRow = ({ name, value }) => { const classes = useStyles(); return ( {name} {value} ); }; const StatusCard = ({ deviceId, onClose }) => { const classes = useStyles(); const history = useHistory(); const t = useTranslation(); const device = useSelector((state) => state.devices.items[deviceId]); const position = useSelector((state) => state.positions.items[deviceId]); const distanceUnit = useAttributePreference('distanceUnit'); const speedUnit = useAttributePreference('speedUnit'); const [removeDialogShown, setRemoveDialogShown] = useState(false); return ( <> {device && ( )} action={( )} title={device.name} subheader={formatStatus(device.status, t)} /> {position && ( {position.attributes.odometer ? : }
)} history.push('/replay')} disabled={!position}> history.push(`/device/${deviceId}`)}> setRemoveDialogShown(true)} className={classes.negative}>
)} setRemoveDialogShown(false)} /> ); }; export default StatusCard;