// @flow import * as ICONS from 'constants/icons'; import * as MODALS from 'constants/modal_types'; import * as PAGES from 'constants/pages'; import React from 'react'; import CreditAmount from 'component/common/credit-amount'; import Button from 'component/button'; import HelpLink from 'component/common/help-link'; import Card from 'component/common/card'; import Icon from 'component/common/icon'; import LbcSymbol from 'component/common/lbc-symbol'; import I18nMessage from 'component/i18nMessage'; import { formatNumberWithCommas } from 'util/number'; import { Lbryio } from 'lbryinc'; import moment from 'moment'; type Props = { balance: number, totalBalance: number, claimsBalance: number, supportsBalance: number, tipsBalance: number, doOpenModal: (string) => void, hasSynced: boolean, doFetchUtxoCounts: () => void, doUtxoConsolidate: () => void, fetchingUtxoCounts: boolean, consolidatingUtxos: boolean, consolidateIsPending: boolean, massClaimingTips: boolean, massClaimIsPending: boolean, utxoCounts: { [string]: number }, accountDetails: any, transactions: any, totalTippedAmount: number, }; const WalletBalance = (props: Props) => { const { } = props; // receive transactions from parent component let accountTransactions = props.transactions; // let totalTippedAmount = props.totalTippedAmount; // totalTippedAmount = 0; // reverse so most recent payments come first if(accountTransactions){ accountTransactions = accountTransactions.reverse(); } const [detailsExpanded, setDetailsExpanded] = React.useState(false); const [accountStatusResponse, setAccountStatusResponse] = React.useState(); const [paymentHistoryTransactions, setPaymentHistoryTransactions] = React.useState(); const [subscriptions, setSubscriptions] = React.useState(); const [totalTippedAmount, setTotalTippedAmount] = React.useState(0); const [lastFour, setLastFour] = React.useState(); var environment = 'test'; function getPaymentHistory() { return Lbryio.call( 'customer', 'list', { environment, }, 'post' )}; function getCustomerStatus(){ return Lbryio.call( 'customer', 'status', { environment, }, 'post' ) } React.useEffect(() => { (async function(){ let response = await getPaymentHistory(); const customerStatusResponse = await getCustomerStatus(); let totalTippedAmount = 0; for(const transaction of response){ totalTippedAmount = totalTippedAmount + transaction.tipped_amount } setTotalTippedAmount(totalTippedAmount / 100); setLastFour(customerStatusResponse.PaymentMethods[0].card.last4); if (response.length > 10) response.length = 10; setPaymentHistoryTransactions(response); const subscriptions = [...response]; if(subscriptions.length > 2){ subscriptions.length = 2 setSubscriptions([]) } else { setSubscriptions([]) } console.log(response); })(); }, []); return ( <>

{totalTippedAmount}

{paymentHistoryTransactions && paymentHistoryTransactions.reverse().map((transaction) => ( ))}
{__('Date')} {<>{__('Receiving Channel Name')}} {__('Tip Location')} {__('Amount (USD)')} {__('Card Last 4')} {__('Anonymous')}
{moment(transaction.created_at).format('LLL')} ${transaction.tipped_amount / 100} {lastFour} {transaction.private_tip ? 'Yes' : 'No'}
{(!paymentHistoryTransactions || paymentHistoryTransactions.length === 0) &&

No Transactions

}
} />
{subscriptions && subscriptions.reverse().map((transaction) => ( ))}
{__('Date')} {<>{__('Receiving Channel Name')}} {__('Tip Location')} {__('Amount (USD)')} {__('Card Last 4')} {__('Anonymous')}
{moment(transaction.created_at).format('LLL')} ${transaction.tipped_amount / 100} {lastFour} {transaction.private_tip ? 'Yes' : 'No'}
{(!subscriptions || subscriptions.length === 0) &&

No Subscriptions

}
} /> ); }; export default WalletBalance;