import { AssetProxyId } from '@0xproject/types'; import { BigNumber } from '@0xproject/utils'; import * as _ from 'lodash'; import * as React from 'react'; import { assetMetaData } from '../data/asset_meta_data'; import { ColorOption } from '../style/theme'; import { util } from '../util/util'; import { AmountInput, AmountInputProps } from './amount_input'; import { Container, Text } from './ui'; export interface AssetAmountInputProps extends AmountInputProps { assetData?: string; onChange: (value?: BigNumber, assetData?: string) => void; } export class AssetAmountInput extends React.Component { public static defaultProps = { onChange: util.boundNoop, }; public render(): React.ReactNode { const { assetData, onChange, ...rest } = this.props; return ( {this._getAssetSymbolLabel()} ); } private readonly _getAssetSymbolLabel = (): string => { const unknownLabel = '???'; if (_.isUndefined(this.props.assetData)) { return unknownLabel; } const metaData = assetMetaData[this.props.assetData]; if (_.isUndefined(metaData)) { return unknownLabel; } if (metaData.assetProxyId === AssetProxyId.ERC20) { return metaData.symbol; } return unknownLabel; }; private readonly _handleChange = (value?: BigNumber): void => { this.props.onChange(value, this.props.assetData); }; }