Newer
Older
// Copyright 2015-2018 Parity Technologies (UK) Ltd.
// This file is part of Parity.
//
// SPDX-License-Identifier: MIT
import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';
import TokenBalance from '../../Tokens/TokensList/TokenBalance';
const MAX_GAS_PRICE = 40; // In Gwei
const MIN_GAS_PRICE = 3; // Safelow gas price from GasStation, in Gwei
@inject('sendStore')
@observer
class Send extends Component {
componentDidMount () {
this.props.sendStore.estimateGas();
}
handleChangeAmount = ({ target: { value } }) =>
handleChangeGasPrice = ({ target: { value } }) =>
const { sendStore } = this.props;
sendStore.setTxTo(value);
// Estimate the gas to this address, if we're sending ETH.
if (sendStore.tokenAddress === 'ETH') {
sendStore.estimateGas();
}
handleSubmit = e => {
e.preventDefault();
// Post a request to the transaction. There is a next step to sign this
// request.
history.push('/send/signer');
};
render () {
const {
<Link to='/tokens' className='icon -close'>
Close
</Link>
}
title={<h1>Send {token.name}</h1>}
/>
<div className='window_content'>
<div className='box -padded'>
<TokenBalance
drawers={[
<form
className='send-form'
key='txForm'
onSubmit={this.handleSubmit}
>
<FormField
input={
<div>
<input
className='form_field_amount'
onChange={this.handleChangeAmount}
required
type='number'
/>
<nav className='form-field_nav'>
<button className='button -utility' type='button'>
Max
</button>
</nav>
</div>
}
label='Amount'
/>
<FormField
input={
<textarea
className='-sm'
onChange={this.handleChangeTo}
required
type='text'
placeholder='Recipient address'
/>
}
label='To'
/>
<FormField
className='-range'
input={
<div>
<input
max={MAX_GAS_PRICE}
min={MIN_GAS_PRICE}
onChange={this.handleChangeGasPrice}
required
/>
<nav className='range-nav'>
<span className='range-nav_label'>Cheap</span>
<span className='range-nav_value'>
</span>
<span className='range-nav_label'>Fast</span>
</nav>
</div>
}
label='Gas'
/>
</fieldset>
<nav className='form-nav'>
<button className='button'>Send</button>
</nav>
</form>
]}
onClick={null}
token={token}
/>
</div>
</div>
);
}
}
export default Send;