import Grid from '@material-ui/core/Grid' import { makeStyles } from '@material-ui/core/styles' import classnames from 'classnames' import prettyMs from 'pretty-ms' import React from 'react' import { Label1, Label2, TL2 } from 'src/components/typography' import { ReactComponent as Wrench } from 'src/styling/icons/action/wrench/zodiac.svg' import { ReactComponent as Transaction } from 'src/styling/icons/arrow/transaction.svg' import { ReactComponent as StripesSvg } from 'src/styling/icons/stripes.svg' import { ReactComponent as WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg' import styles from './NotificationCenter.styles' const useStyles = makeStyles(styles) const types = { highValueTransaction: { display: 'Transactions', icon: }, fiatBalance: { display: 'Maintenance', icon: }, cryptoBalance: { display: 'Maintenance', icon: }, compliance: { display: 'Compliance', icon: }, error: { display: 'Error', icon: } } const NotificationRow = ({ id, type, detail, message, deviceName, created, read, valid, onClear }) => { const classes = useStyles() const buildType = () => { return types[type].display } const buildAge = () => { const createdDate = new Date(created) const interval = +new Date() - createdDate return prettyMs(interval, { compact: true, verbose: true }) } return ( {types[type].icon} {`${buildType()} ${deviceName ? '- ' + deviceName : ''}`} {message} {buildAge(created)} {!read && ( onClear(id)} className={classes.unreadIcon} /> )} {!valid && } ) } export default NotificationRow