41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import * as React from 'react';
 | |
| 
 | |
| import { Circle } from 'ts/components/ui/circle';
 | |
| import { Container } from 'ts/components/ui/container';
 | |
| import { Text } from 'ts/components/ui/text';
 | |
| import { colors } from 'ts/style/colors';
 | |
| import { AccountState } from 'ts/types';
 | |
| 
 | |
| export interface AccountConnectionProps {
 | |
|     accountState: AccountState;
 | |
|     injectedProviderName: string;
 | |
| }
 | |
| 
 | |
| export const AccountConnection: React.StatelessComponent<AccountConnectionProps> = ({
 | |
|     accountState,
 | |
|     injectedProviderName,
 | |
| }) => {
 | |
|     return (
 | |
|         <Container className="flex items-center">
 | |
|             <Circle diameter={6} fillColor={getInjectedProviderColor(accountState)} />
 | |
|             <Container marginLeft="6px">
 | |
|                 <Text fontSize="12px" lineHeight="14px" fontColor={colors.darkGrey}>
 | |
|                     {injectedProviderName}
 | |
|                 </Text>
 | |
|             </Container>
 | |
|         </Container>
 | |
|     );
 | |
| };
 | |
| 
 | |
| const getInjectedProviderColor = (accountState: AccountState) => {
 | |
|     switch (accountState) {
 | |
|         case AccountState.Ready:
 | |
|             return colors.limeGreen;
 | |
|         case AccountState.Locked:
 | |
|         case AccountState.Loading:
 | |
|         case AccountState.Disconnected:
 | |
|         default:
 | |
|             return colors.red;
 | |
|     }
 | |
| };
 |