import { colors } from '@0xproject/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; import { Party } from 'ts/components/ui/party'; import { Token, TokenByAddress } from 'ts/types'; import { utils } from 'ts/utils/utils'; interface TrackTokenConfirmationProps { tokens: Token[]; tokenByAddress: TokenByAddress; networkId: number; isAddingTokenToTracked: boolean; } interface TrackTokenConfirmationState {} export class TrackTokenConfirmation extends React.Component<TrackTokenConfirmationProps, TrackTokenConfirmationState> { public render(): React.ReactNode { const isMultipleTokens = this.props.tokens.length > 1; const allTokens = _.values(this.props.tokenByAddress); return ( <div style={{ color: colors.grey700 }}> {this.props.isAddingTokenToTracked ? ( <div className="py4 my4 center"> <span className="pr1"> <i className="zmdi zmdi-spinner zmdi-hc-spin" /> </span> <span>Adding token{isMultipleTokens && 's'}...</span> </div> ) : ( <div> <div>You do not currently track the following token{isMultipleTokens && 's'}:</div> <div className="py2 clearfix mx-auto center" style={{ width: 355 }}> {_.map(this.props.tokens, (token: Token) => ( <div key={`token-profile-${token.name}`} className={`col col-${isMultipleTokens ? '6' : '12'} px2`} > <Party label={token.name} address={token.address} networkId={this.props.networkId} alternativeImage={token.iconUrl} isInTokenRegistry={token.isRegistered} hasUniqueNameAndSymbol={utils.hasUniqueNameAndSymbol(allTokens, token)} /> </div> ))} </div> <div> Tracking a token adds it to the balances section of 0x Portal and allows you to generate/fill orders involving the token {isMultipleTokens && 's'}. Would you like to start tracking{' '} {isMultipleTokens ? 'these' : 'this'} token? </div> </div> )} </div> ); } }