import { useQuery } from '@apollo/react-hooks' import { makeStyles } from '@material-ui/core/styles' import gql from 'graphql-tag' import * as R from 'ramda' import React, { useContext } from 'react' import AppContext from 'src/AppContext' import { HoverableTooltip } from 'src/components/Tooltip' import TitleSection from 'src/components/layout/TitleSection' import DataTable from 'src/components/tables/DataTable' import { H4, Info2, P } from 'src/components/typography' import { numberToFiatAmount } from 'src/utils/number' import { formatDate } from 'src/utils/timezones' import styles from './Accounting.styles' const useStyles = makeStyles(styles) const GET_OPERATOR_BY_USERNAME = gql` query operatorByUsername($username: String) { operatorByUsername(username: $username) { id entityId name fiatBalances cryptoBalances machines joined assetValue preferredFiatCurrency contactInfo { name email } fundings { id origin destination fiatAmount fiatBalanceAfter fiatCurrency created status description } } } ` const GET_DATA = gql` query getData { config } ` const Assets = ({ balance, hedgingReserve, currency }) => { const classes = useStyles() return (

Pazuz fiat balance

{numberToFiatAmount(balance)} {R.toUpper(currency)}
-

Hedging reserve

{numberToFiatAmount(hedgingReserve)} {R.toUpper(currency)}
=

Available balance

{numberToFiatAmount(balance - hedgingReserve)} {R.toUpper(currency)}
) } const Accounting = () => { const classes = useStyles() const { userData } = useContext(AppContext) const { data: opData, loading: operatorLoading } = useQuery( GET_OPERATOR_BY_USERNAME, { context: { clientName: 'pazuz' }, variables: { username: userData?.username } } ) const { data: configResponse, loading: configLoading } = useQuery(GET_DATA) const timezone = R.path(['config', 'locale_timezone'], configResponse) const loading = operatorLoading || configLoading const operatorData = R.path(['operatorByUsername'], opData) const elements = [ { header: 'Operation', width: 500, size: 'sm', textAlign: 'left', view: it => { return ( {it.description} {!!it.extraInfo && (

{it.extraInfo}

)}
) } }, { header: 'Amount', width: 147, size: 'sm', textAlign: 'right', view: it => `${numberToFiatAmount(it.fiatAmount)} ${R.toUpper(it.fiatCurrency)}` }, { header: 'Balance after operation', width: 250, size: 'sm', textAlign: 'right', view: it => `${numberToFiatAmount(it.fiatBalanceAfter)} ${R.toUpper( it.fiatCurrency )}` }, { header: 'Date', width: 150, size: 'sm', textAlign: 'right', view: it => formatDate(it.created, timezone, 'yyyy-MM-dd') }, { header: 'Time', width: 150, size: 'sm', textAlign: 'right', view: it => formatDate(it.created, timezone, 'yyyy-MM-dd') } ] return ( !loading && ( <>

Fiat balance history

) ) } export default Accounting