import Grid from '@material-ui/core/Grid' import Table from '@material-ui/core/Table' import TableBody from '@material-ui/core/TableBody' import TableCell from '@material-ui/core/TableCell' import TableContainer from '@material-ui/core/TableContainer' import TableHead from '@material-ui/core/TableHead' import TableRow from '@material-ui/core/TableRow' import { makeStyles, withStyles } from '@material-ui/core/styles' import * as R from 'ramda' import React from 'react' import TitleSection from 'src/components/layout/TitleSection' import { H4, Label2, P, Info2 } from 'src/components/typography' import styles from './Assets.styles' const useStyles = makeStyles(styles) const StyledCell = withStyles({ root: { borderBottom: '4px solid white', padding: 0, paddingLeft: 20, paddingRight: 20 } })(TableCell) const HeaderCell = withStyles({ root: { borderBottom: '4px solid white', padding: 0, paddingLeft: 20, paddingRight: 20, backgroundColor: 'white' } })(TableCell) const AssetsAmountTable = ({ title, data = [], numToRender }) => { const classes = useStyles() const totalAmount = R.compose(R.sum, R.map(R.path(['amount'])))(data) ?? 0 const currency = data[0]?.currency ?? '' const selectAmountPrefix = it => it.direction === 'in' ? '+' : R.isNil(it.direction) ? '' : '-' return ( <>

{title}

Asset
Amount
{data?.map((asset, idx) => { if (idx < numToRender) { return (

{asset.display}

{`${selectAmountPrefix(asset)} ${formatCurrency(Math.abs(asset.amount))} ${ asset.currency }`}

) } return null })} {`Total ${R.toLower(title)}`} {`${formatCurrency(totalAmount)} ${currency}`}
) } const formatCurrency = amount => amount.toLocaleString('en-US', { maximumFractionDigits: 2 }) const Assets = () => { const classes = useStyles() const mockData = [ { id: 'fiatBalance', display: 'Fiat balance', amount: 10438, currency: 'USD', class: 'Available balance' }, { id: 'hedgingReserve', display: 'Hedging reserve', amount: -1486, currency: 'USD', class: 'Available balance', direction: 'out' }, { id: 'hedgedWalletAssets', display: 'Hedged wallet assets', amount: 96446, currency: 'USD', class: 'Wallet assets', direction: 'in' }, { id: 'unhedgedWalletAssets', display: 'Unhedged wallet assets', amount: 3978, currency: 'USD', class: 'Wallet assets', direction: 'in' } ] const mockDataTotal = [ { id: 'fiatBalance', display: 'Fiat balance', amount: 10438, currency: 'USD' }, { id: 'hedgingReserve', display: 'Hedging reserve', amount: -1486, currency: 'USD', direction: 'out' }, { id: 'hedgedWalletAssets', display: 'Market value of hedged wallet assets', amount: 94980, currency: 'USD', direction: 'in' }, { id: 'unhedgedWalletAssets', display: 'Unhedged wallet assets', amount: 3978, currency: 'USD', direction: 'in' } ] const filterByClass = x => R.filter(it => R.path(['class'])(it) === x)(mockData) return ( <>
) } export default Assets