import * as React from 'react'; import Avatar from '@mui/material/Avatar'; import Button from '@mui/material/Button'; import Card from '@mui/material/Card'; import CardActions from '@mui/material/CardActions'; import CardHeader from '@mui/material/CardHeader'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import ListItemAvatar from '@mui/material/ListItemAvatar'; import ListItemText from '@mui/material/ListItemText'; import Typography from '@mui/material/Typography'; import { ArrowRight as ArrowRightIcon } from '@phosphor-icons/react/dist/ssr/ArrowRight'; import { ArrowsDownUp as ArrowsDownUpIcon } from '@phosphor-icons/react/dist/ssr/ArrowsDownUp'; import { TrendDown as TrendDownIcon } from '@phosphor-icons/react/dist/ssr/TrendDown'; import { TrendUp as TrendUpIcon } from '@phosphor-icons/react/dist/ssr/TrendUp'; import { dayjs } from '@/lib/dayjs'; export type CurrencyCode = 'BTC' | 'ETH' | 'BNB'; export interface Transaction { id: string; type: 'add' | 'sub'; description: string; balance: number; currency: CurrencyCode; amount: number; createdAt: Date; } export interface TransactionsProps { transactions: Transaction[]; } export function Transactions({ transactions }: TransactionsProps): React.JSX.Element { return ( } title="Transactions" /> {transactions.map((transaction) => ( {transaction.type === 'add' ? ( ) : ( )} {transaction.description}} secondary={ {dayjs(transaction.createdAt).format('MM.DD.YYYY / hh:mm A')} } />
{transaction.type === 'add' ? '+' : '-'} {transaction.amount} {transaction.currency} {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transaction.balance)}
))}
); }