Changeset View
Changeset View
Standalone View
Standalone View
cashtab/src/components/Etokens/TokenListItem.js
Show All 30 Lines | const Wrapper = styled.div` | ||||
} | } | ||||
:hover { | :hover { | ||||
h4 { | h4 { | ||||
color: ${props => props.theme.eCashPurple}; | color: ${props => props.theme.eCashPurple}; | ||||
} | } | ||||
} | } | ||||
`; | `; | ||||
const TokenListItem = ({ ticker, balance, tokenId }) => { | /** | ||||
* Display token ticker and balance as a table item | |||||
* All tokens should be cached when this screen is rendered | |||||
* But, in case it isn't for any reason, handle this case | |||||
*/ | |||||
const TokenListItem = ({ tokenId, balance, cachedTokenInfo }) => { | |||||
return ( | return ( | ||||
<Wrapper> | <Wrapper> | ||||
<TokenNameCtn> | <TokenNameCtn> | ||||
<TokenIconWrapper> | <TokenIconWrapper> | ||||
<TokenIcon size={32} tokenId={tokenId} /> | <TokenIcon size={32} tokenId={tokenId} /> | ||||
</TokenIconWrapper> | </TokenIconWrapper> | ||||
<h4>{ticker}</h4> | <h4> | ||||
{typeof cachedTokenInfo !== 'undefined' | |||||
? cachedTokenInfo.genesisInfo.tokenTicker | |||||
: 'UNCACHED'} | |||||
</h4> | |||||
</TokenNameCtn> | </TokenNameCtn> | ||||
<h4>{balance}</h4> | <h4>{balance}</h4> | ||||
</Wrapper> | </Wrapper> | ||||
); | ); | ||||
}; | }; | ||||
TokenListItem.propTypes = { | TokenListItem.propTypes = { | ||||
ticker: PropTypes.string, | ticker: PropTypes.string, | ||||
balance: PropTypes.string, | balance: PropTypes.string, | ||||
tokenId: PropTypes.string, | tokenId: PropTypes.string, | ||||
cachedTokenInfo: PropTypes.oneOfType([ | |||||
undefined, | |||||
PropTypes.shape({ | |||||
block: PropTypes.shape({ | |||||
hash: PropTypes.string, | |||||
height: PropTypes.number, | |||||
timestamp: PropTypes.number, | |||||
}), | |||||
genesisInfo: PropTypes.shape({ | |||||
decimals: PropTypes.number, | |||||
hash: PropTypes.string, | |||||
tokenName: PropTypes.string, | |||||
tokenTicker: PropTypes.string, | |||||
url: PropTypes.string, | |||||
}), | |||||
genesisMintBatons: PropTypes.number, | |||||
genesisOutputScripts: PropTypes.arrayOf(PropTypes.string), | |||||
timeFirstSeen: PropTypes.number, | |||||
tokenType: PropTypes.shape({ | |||||
number: PropTypes.number, | |||||
protocol: PropTypes.string, | |||||
type: PropTypes.string, | |||||
}), | |||||
}), | |||||
]), | |||||
}; | }; | ||||
export default TokenListItem; | export default TokenListItem; |