aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant/src/components/instant_heading.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/instant/src/components/instant_heading.tsx')
-rw-r--r--packages/instant/src/components/instant_heading.tsx149
1 files changed, 0 insertions, 149 deletions
diff --git a/packages/instant/src/components/instant_heading.tsx b/packages/instant/src/components/instant_heading.tsx
deleted file mode 100644
index e943f68d7..000000000
--- a/packages/instant/src/components/instant_heading.tsx
+++ /dev/null
@@ -1,149 +0,0 @@
-import { BigNumber } from '@0x/utils';
-import * as _ from 'lodash';
-import * as React from 'react';
-
-import { SelectedERC20AssetAmountInput } from '../containers/selected_erc20_asset_amount_input';
-import { ColorOption } from '../style/theme';
-import { AsyncProcessState, ERC20Asset, OrderProcessState, OrderState } from '../types';
-import { format } from '../util/format';
-
-import { AmountPlaceholder } from './amount_placeholder';
-import { Container } from './ui/container';
-import { Flex } from './ui/flex';
-import { Icon } from './ui/icon';
-import { Spinner } from './ui/spinner';
-import { Text } from './ui/text';
-
-export interface InstantHeadingProps {
- selectedAssetUnitAmount?: BigNumber;
- totalEthBaseUnitAmount?: BigNumber;
- ethUsdPrice?: BigNumber;
- quoteRequestState: AsyncProcessState;
- buyOrderState: OrderState;
- onSelectAssetClick?: (asset?: ERC20Asset) => void;
-}
-
-const PLACEHOLDER_COLOR = ColorOption.white;
-const ICON_WIDTH = 34;
-const ICON_HEIGHT = 34;
-const ICON_COLOR = ColorOption.white;
-
-export class InstantHeading extends React.PureComponent<InstantHeadingProps, {}> {
- public render(): React.ReactNode {
- const iconOrAmounts = this._renderIcon() || this._renderAmountsSection();
- return (
- <Container backgroundColor={ColorOption.primaryColor} width="100%" padding="20px">
- <Container marginBottom="5px">
- <Text
- letterSpacing="1px"
- fontColor={ColorOption.white}
- opacity={0.7}
- fontWeight={500}
- textTransform="uppercase"
- fontSize="12px"
- >
- {this._renderTopText()}
- </Text>
- </Container>
- <Flex direction="row" justify="space-between">
- <Flex height="60px">
- <SelectedERC20AssetAmountInput
- startingFontSizePx={38}
- onSelectAssetClick={this.props.onSelectAssetClick}
- />
- </Flex>
- <Flex direction="column" justify="space-between">
- {iconOrAmounts}
- </Flex>
- </Flex>
- </Container>
- );
- }
-
- private _renderAmountsSection(): React.ReactNode {
- if (
- _.isUndefined(this.props.totalEthBaseUnitAmount) &&
- this.props.quoteRequestState !== AsyncProcessState.Pending
- ) {
- return null;
- } else {
- return (
- <Container>
- <Container marginBottom="5px">{this._renderPlaceholderOrAmount(this._renderEthAmount)}</Container>
- <Container opacity={0.7}>{this._renderPlaceholderOrAmount(this._renderDollarAmount)}</Container>
- </Container>
- );
- }
- }
-
- private _renderIcon(): React.ReactNode {
- const processState = this.props.buyOrderState.processState;
-
- if (processState === OrderProcessState.Failure) {
- return <Icon icon="failed" width={ICON_WIDTH} height={ICON_HEIGHT} color={ICON_COLOR} />;
- } else if (processState === OrderProcessState.Processing) {
- return <Spinner widthPx={ICON_HEIGHT} heightPx={ICON_HEIGHT} />;
- } else if (processState === OrderProcessState.Success) {
- return <Icon icon="success" width={ICON_WIDTH} height={ICON_HEIGHT} color={ICON_COLOR} />;
- }
- return undefined;
- }
-
- private _renderTopText(): React.ReactNode {
- const processState = this.props.buyOrderState.processState;
- if (processState === OrderProcessState.Failure) {
- return 'Order failed';
- } else if (processState === OrderProcessState.Processing) {
- return 'Processing Order...';
- } else if (processState === OrderProcessState.Success) {
- return 'Tokens received!';
- }
-
- return 'I want to buy';
- }
-
- private _renderPlaceholderOrAmount(amountFunction: () => React.ReactNode): React.ReactNode {
- if (this.props.quoteRequestState === AsyncProcessState.Pending) {
- return <AmountPlaceholder isPulsating={true} color={PLACEHOLDER_COLOR} />;
- }
- if (_.isUndefined(this.props.selectedAssetUnitAmount)) {
- return <AmountPlaceholder isPulsating={false} color={PLACEHOLDER_COLOR} />;
- }
- return amountFunction();
- }
-
- private readonly _renderEthAmount = (): React.ReactNode => {
- const ethAmount = format.ethBaseUnitAmount(
- this.props.totalEthBaseUnitAmount,
- 4,
- <AmountPlaceholder isPulsating={false} color={PLACEHOLDER_COLOR} />,
- );
-
- const fontSize = _.isString(ethAmount) && ethAmount.length >= 13 ? '14px' : '16px';
- return (
- <Text
- fontSize={fontSize}
- textAlign="right"
- width="100%"
- fontColor={ColorOption.white}
- fontWeight={500}
- noWrap={true}
- >
- {ethAmount}
- </Text>
- );
- };
-
- private readonly _renderDollarAmount = (): React.ReactNode => {
- return (
- <Text fontSize="16px" textAlign="right" width="100%" fontColor={ColorOption.white} noWrap={true}>
- {format.ethBaseUnitAmountInUsd(
- this.props.totalEthBaseUnitAmount,
- this.props.ethUsdPrice,
- 2,
- <AmountPlaceholder isPulsating={false} color={ColorOption.white} />,
- )}
- </Text>
- );
- };
-}