import React from 'react'; import translate, { translateRaw } from 'translations'; import UnitDropdown from './UnitDropdown'; import { Balance } from 'libs/wallet'; import { UnitConverter } from 'components/renderCbs'; interface Props { decimal: number; unit: string; tokens: string[]; balance: number | null | Balance; isReadOnly: boolean; onAmountChange(value: string, unit: string): void; onUnitChange(unit: string): void; } export default class AmountField extends React.Component { public props: Props; get active() { return !this.props.isReadOnly; } public render() { const { unit, balance, decimal, isReadOnly } = this.props; return (
{({ onUserInput, convertedUnit }) => ( 0 ? 'is-valid' : 'is-invalid' }`} type="text" placeholder={translateRaw('SEND_amount_short')} value={convertedUnit} disabled={isReadOnly} onChange={onUserInput} /> )}
{!isReadOnly && balance && ( {translate('SEND_TransferTotal')} )}
); } public onUnitChange = (unit: string) => this.active && this.props.onUnitChange(unit); // thsi needs to be converted unit public callWithBaseUnit = ({ currentTarget: { value } }) => this.active && this.props.onAmountChange(value, this.props.unit); public onSendEverything = () => this.active && this.props.onAmountChange('everything', this.props.unit); }