import * as React from 'react'; import * as _ from 'lodash'; import BigNumber from 'bignumber.js'; import {ZeroEx} from '0x.js'; import {Link} from 'react-router-dom'; import {colors} from 'material-ui/styles'; import {Token, TokenState, InputErrMsg, ValidatedBigNumberCallback, WebsitePaths} from 'ts/types'; import {BalanceBoundedInput} from 'ts/components/inputs/balance_bounded_input'; interface TokenAmountInputProps { label: string; token: Token; tokenState: TokenState; amount?: BigNumber; shouldShowIncompleteErrs: boolean; shouldCheckBalance: boolean; shouldCheckAllowance: boolean; onChange: ValidatedBigNumberCallback; onVisitBalancesPageClick?: () => void; } interface TokenAmountInputState {} export class TokenAmountInput extends React.Component { public render() { const amount = this.props.amount ? ZeroEx.toUnitAmount(this.props.amount, this.props.token.decimals) : undefined; return (
{this.props.token.symbol}
); } private onChange(isValid: boolean, amount?: BigNumber) { let baseUnitAmount; if (!_.isUndefined(amount)) { baseUnitAmount = ZeroEx.toBaseUnitAmount(amount, this.props.token.decimals); } this.props.onChange(isValid, baseUnitAmount); } private validate(amount: BigNumber): InputErrMsg { if (this.props.shouldCheckAllowance && amount.gt(this.props.tokenState.allowance)) { return ( Insufficient allowance.{' '} Set allowance ); } } }