diff options
Diffstat (limited to 'packages/instant/src/components/payment_method.tsx')
-rw-r--r-- | packages/instant/src/components/payment_method.tsx | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/packages/instant/src/components/payment_method.tsx b/packages/instant/src/components/payment_method.tsx deleted file mode 100644 index ada9f7bab..000000000 --- a/packages/instant/src/components/payment_method.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import * as _ from 'lodash'; -import * as React from 'react'; - -import { ColorOption } from '../style/theme'; -import { Account, AccountState, Network } from '../types'; -import { envUtil } from '../util/env'; - -import { CoinbaseWalletLogo } from './coinbase_wallet_logo'; -import { MetaMaskLogo } from './meta_mask_logo'; -import { PaymentMethodDropdown } from './payment_method_dropdown'; -import { SectionHeader } from './section_header'; -import { Circle } from './ui/circle'; -import { Container } from './ui/container'; -import { Flex } from './ui/flex'; -import { Icon } from './ui/icon'; -import { Text } from './ui/text'; -import { WalletPrompt } from './wallet_prompt'; - -export interface PaymentMethodProps { - account: Account; - network: Network; - walletDisplayName: string; - onInstallWalletClick: () => void; - onUnlockWalletClick: () => void; -} - -export class PaymentMethod extends React.PureComponent<PaymentMethodProps> { - public render(): React.ReactNode { - return ( - <Container width="100%" height="120px" padding="20px 20px 0px 20px"> - <Container marginBottom="12px"> - <Flex justify="space-between"> - <SectionHeader>{this._renderTitleText()}</SectionHeader> - {this._renderTitleLabel()} - </Flex> - </Container> - {this._renderMainContent()} - </Container> - ); - } - private readonly _renderTitleText = (): string => { - const { account } = this.props; - switch (account.state) { - case AccountState.Loading: - return 'loading...'; - case AccountState.Locked: - case AccountState.None: - return 'connect your wallet'; - case AccountState.Ready: - return 'payment method'; - } - }; - private readonly _renderTitleLabel = (): React.ReactNode => { - const { account } = this.props; - if (account.state === AccountState.Ready || account.state === AccountState.Locked) { - const circleColor: ColorOption = account.state === AccountState.Ready ? ColorOption.green : ColorOption.red; - return ( - <Flex align="center"> - <Circle diameter={8} color={circleColor} /> - <Container marginLeft="5px"> - <Text fontColor={ColorOption.darkGrey} fontSize="12px" lineHeight="30px"> - {this.props.walletDisplayName} - </Text> - </Container> - </Flex> - ); - } - return null; - }; - private readonly _renderMainContent = (): React.ReactNode => { - const { account, network } = this.props; - const isMobile = envUtil.isMobileOperatingSystem(); - const logo = isMobile ? <CoinbaseWalletLogo width={22} /> : <MetaMaskLogo width={19} height={18} />; - const primaryColor = isMobile ? ColorOption.darkBlue : ColorOption.darkOrange; - const secondaryColor = isMobile ? ColorOption.lightBlue : ColorOption.lightOrange; - const colors = { primaryColor, secondaryColor }; - switch (account.state) { - case AccountState.Loading: - return null; - case AccountState.Locked: - return ( - <WalletPrompt - onClick={this.props.onUnlockWalletClick} - image={ - <Container position="relative" top="2px"> - <Icon width={13} icon="lock" color={ColorOption.black} /> - </Container> - } - {...colors} - > - Click to Connect {this.props.walletDisplayName} - </WalletPrompt> - ); - case AccountState.None: - return ( - <WalletPrompt onClick={this.props.onInstallWalletClick} image={logo} {...colors}> - {isMobile ? 'Install Coinbase Wallet' : 'Install MetaMask'} - </WalletPrompt> - ); - case AccountState.Ready: - return ( - <PaymentMethodDropdown - accountAddress={account.address} - accountEthBalanceInWei={account.ethBalanceInWei} - network={network} - /> - ); - } - }; -} |