aboutsummaryrefslogblamecommitdiffstats
path: root/ui/app/components/transaction-activity-log/transaction-activity-log.container.js
blob: e4322970805dc758f0be6508dd6aea678faeaa2e (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                     
                     
                                                                         
                                                                           






                                                                                     



                                                  
                                             


   
























                                                                                                            
import { connect } from 'react-redux'
import R from 'ramda'
import TransactionActivityLog from './transaction-activity-log.component'
import { conversionRateSelector, getNativeCurrency } from '../../selectors'
import { combineTransactionHistories } from './transaction-activity-log.util'
import {
  TRANSACTION_RESUBMITTED_EVENT,
  TRANSACTION_CANCEL_ATTEMPTED_EVENT,
} from './transaction-activity-log.constants'

const matchesEventKey = matchEventKey => ({ eventKey }) => eventKey === matchEventKey

const mapStateToProps = state => {
  return {
    conversionRate: conversionRateSelector(state),
    nativeCurrency: getNativeCurrency(state),
  }
}

const mergeProps = (stateProps, dispatchProps, ownProps) => {
  const {
    transactionGroup: {
      transactions = [],
      primaryTransaction,
    } = {},
    ...restOwnProps
  } = ownProps

  const activities = combineTransactionHistories(transactions)
  const inlineRetryIndex = R.findLastIndex(matchesEventKey(TRANSACTION_RESUBMITTED_EVENT))(activities)
  const inlineCancelIndex = R.findLastIndex(matchesEventKey(TRANSACTION_CANCEL_ATTEMPTED_EVENT))(activities)

  return {
    ...stateProps,
    ...dispatchProps,
    ...restOwnProps,
    activities,
    inlineRetryIndex,
    inlineCancelIndex,
    primaryTransaction,
  }
}

export default connect(mapStateToProps, null, mergeProps)(TransactionActivityLog)