mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-01 00:28:06 +01:00
016acd3e94
The asset page component has been split into three parts: the main asset page wrapper, and a component for the content (either token or native currency). This makes it easier to add functionality that is specific to either token asset pages or native currency asset pages.
52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
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'
|
|
import { getCurrentNetworkId, getSelectedIdentity } from '../../../selectors/selectors'
|
|
import { DEFAULT_ROUTE } from '../../../helpers/constants/routes'
|
|
import { showModal } from '../../../store/actions'
|
|
|
|
import AssetNavigation from './asset-navigation'
|
|
import TokenOptions from './token-options'
|
|
|
|
export default function TokenAsset ({ token }) {
|
|
const dispatch = useDispatch()
|
|
const network = useSelector(getCurrentNetworkId)
|
|
const selectedAccountName = useSelector((state) => getSelectedIdentity(state).name)
|
|
const history = useHistory()
|
|
|
|
return (
|
|
<>
|
|
<AssetNavigation
|
|
accountName={selectedAccountName}
|
|
assetName={token.symbol}
|
|
onBack={() => history.push(DEFAULT_ROUTE)}
|
|
optionsButton={(
|
|
<TokenOptions
|
|
onRemove={() => dispatch(showModal({ name: 'HIDE_TOKEN_CONFIRMATION', token }))}
|
|
onViewEtherscan={() => {
|
|
const url = createAccountLink(token.address, network)
|
|
global.platform.openTab({ url })
|
|
}}
|
|
tokenSymbol={token.symbol}
|
|
/>
|
|
)}
|
|
/>
|
|
<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,
|
|
}
|