2020-06-12 19:04:40 +02:00
|
|
|
import React from 'react'
|
|
|
|
import PropTypes from 'prop-types'
|
|
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
|
|
import { useHistory } from 'react-router-dom'
|
|
|
|
import { createAccountLink } from '@metamask/etherscan-link'
|
|
|
|
|
|
|
|
import TransactionList from '../../../components/app/transaction-list'
|
|
|
|
import { TokenOverview } from '../../../components/app/wallet-overview'
|
2020-11-03 00:41:28 +01:00
|
|
|
import {
|
|
|
|
getCurrentNetworkId,
|
|
|
|
getSelectedIdentity,
|
|
|
|
} from '../../../selectors/selectors'
|
2020-06-12 19:04:40 +02:00
|
|
|
import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'
|
|
|
|
import { showModal } from '../../../store/actions'
|
|
|
|
|
|
|
|
import AssetNavigation from './asset-navigation'
|
|
|
|
import TokenOptions from './token-options'
|
|
|
|
|
2020-11-03 00:41:28 +01:00
|
|
|
export default function TokenAsset({ token }) {
|
2020-06-12 19:04:40 +02:00
|
|
|
const dispatch = useDispatch()
|
|
|
|
const network = useSelector(getCurrentNetworkId)
|
2020-11-03 00:41:28 +01:00
|
|
|
const selectedAccountName = useSelector(
|
|
|
|
(state) => getSelectedIdentity(state).name,
|
|
|
|
)
|
2020-06-12 19:04:40 +02:00
|
|
|
const history = useHistory()
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<AssetNavigation
|
|
|
|
accountName={selectedAccountName}
|
|
|
|
assetName={token.symbol}
|
|
|
|
onBack={() => history.push(DEFAULT_ROUTE)}
|
2020-11-03 00:41:28 +01:00
|
|
|
optionsButton={
|
2020-06-12 19:04:40 +02:00
|
|
|
<TokenOptions
|
2020-11-03 00:41:28 +01:00
|
|
|
onRemove={() =>
|
|
|
|
dispatch(showModal({ name: 'HIDE_TOKEN_CONFIRMATION', token }))
|
|
|
|
}
|
2020-06-12 19:04:40 +02:00
|
|
|
onViewEtherscan={() => {
|
|
|
|
const url = createAccountLink(token.address, network)
|
|
|
|
global.platform.openTab({ url })
|
|
|
|
}}
|
|
|
|
tokenSymbol={token.symbol}
|
|
|
|
/>
|
2020-11-03 00:41:28 +01:00
|
|
|
}
|
2020-06-12 19:04:40 +02:00
|
|
|
/>
|
|
|
|
<TokenOverview className="asset__overview" token={token} />
|
|
|
|
<TransactionList tokenAddress={token.address} />
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
TokenAsset.propTypes = {
|
|
|
|
token: PropTypes.shape({
|
|
|
|
address: PropTypes.string.isRequired,
|
|
|
|
decimals: PropTypes.number,
|
|
|
|
symbol: PropTypes.string,
|
|
|
|
}).isRequired,
|
|
|
|
}
|