62 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { colors } from '@0x/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>
 | |
|         );
 | |
|     }
 | |
| }
 |