import { makeStyles } from '@material-ui/core/styles' import classnames from 'classnames' import prettyMs from 'pretty-ms' import * as R from 'ramda' 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 WarningIcon } from 'src/styling/icons/warning-icon/tomato.svg' import styles from './NotificationCenter.styles' const useStyles = makeStyles(styles) const types = { transaction: { display: 'Transactions', icon: }, 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, toggleClear }) => { const classes = useStyles() const typeDisplay = R.path([type, 'display'])(types) ?? null const icon = R.path([type, 'icon'])(types) ?? ( ) const age = prettyMs(new Date().getTime() - new Date(created).getTime(), { compact: true, verbose: true }) const notificationTitle = typeDisplay && deviceName ? `${typeDisplay} - ${deviceName}` : !typeDisplay && deviceName ? `${deviceName}` : `${typeDisplay}` const iconClass = { [classes.readIcon]: read, [classes.unreadIcon]: !read } return (
{icon}
{notificationTitle} {message} {age}
toggleClear(id)} className={classnames(iconClass)} />
) } export default NotificationRow