import React, { Component } from 'react' import PropTypes from 'prop-types' import Isvg from 'react-inlinesvg' import searchIcon from 'icons/search.svg' import xIcon from 'icons/x.svg' import Wallet from 'components/Wallet' import LoadingBolt from 'components/LoadingBolt' import Invoice from './components/Invoice' import Payment from './components/Payment' import Transaction from './components/Transaction' import styles from './Activity.scss' class Activity extends Component { constructor(props, context) { super(props, context) this.renderActivity = this.renderActivity.bind(this) } componentWillMount() { const { fetchPayments, fetchInvoices, fetchTransactions, fetchBalance } = this.props fetchBalance() fetchPayments() fetchInvoices() fetchTransactions() } renderActivity(activity) { const { ticker, currentTicker, showActivityModal, network, currencyName } = this.props if (Object.prototype.hasOwnProperty.call(activity, 'block_hash')) { // activity is an on-chain tx return ( ) } else if (Object.prototype.hasOwnProperty.call(activity, 'payment_request')) { // activity is an LN invoice return ( ) } // activity is an LN payment return ( ) } render() { const { balance, activity: { filters, filter, filterPulldown, searchActive, searchText }, changeFilter, currentActivity, updateSearchActive, updateSearchText, walletProps } = this.props if (!balance.channelBalance || !balance.walletBalance) { return } return (
{ searchActive ?
updateSearchText(event.target.value)} />
{ updateSearchActive(false) updateSearchText('') }}>
:
    { filters.map(f => (
  • changeFilter(f)}> {f.name}
  • )) }
updateSearchActive(true)}>
}
    { currentActivity.map((activityBlock, index) => (
  • {activityBlock.title}

      { activityBlock.activity.map((activity, i) =>
    • {this.renderActivity(activity.el)}
    • ) }
  • )) }
) } } Activity.propTypes = { fetchPayments: PropTypes.func.isRequired, fetchInvoices: PropTypes.func.isRequired, fetchTransactions: PropTypes.func.isRequired, fetchBalance: PropTypes.func.isRequired, ticker: PropTypes.object.isRequired, currentTicker: PropTypes.object.isRequired, network: PropTypes.object.isRequired, showActivityModal: PropTypes.func.isRequired, changeFilter: PropTypes.func.isRequired, activity: PropTypes.object.isRequired, currentActivity: PropTypes.array.isRequired, balance: PropTypes.object.isRequired, walletProps: PropTypes.object.isRequired, currencyName: PropTypes.string.isRequired } export default Activity