From 06ec28c0b5e1b69123f0946ee3e295b0e0a9d019 Mon Sep 17 00:00:00 2001 From: AIS <abdulov001@gmail.com> Date: Mon, 25 Dec 2017 16:28:14 +0300 Subject: [PATCH] Added auto-select first of tokens list and sort tokens list --- .../DepositTokens/DepositTokensForm.jsx | 25 +++++++++++++------ .../dashboard/SendTokens/SendTokensForm.jsx | 23 +++++++++++------ 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/src/components/dashboard/DepositTokens/DepositTokensForm.jsx b/src/components/dashboard/DepositTokens/DepositTokensForm.jsx index 12373066c..a31067c19 100644 --- a/src/components/dashboard/DepositTokens/DepositTokensForm.jsx +++ b/src/components/dashboard/DepositTokens/DepositTokensForm.jsx @@ -17,7 +17,7 @@ import React, { PureComponent } from 'react' import { connect } from 'react-redux' import { Translate } from 'react-redux-i18n' import { SelectField, TextField } from 'redux-form-material-ui' -import { Field, formPropTypes, formValueSelector, reduxForm } from 'redux-form/immutable' +import { change, Field, formPropTypes, formValueSelector, reduxForm } from 'redux-form/immutable' import { DUCK_ASSETS_HOLDER } from 'redux/assetsHolder/actions' import { DUCK_MAIN_WALLET, mainApprove, requireTIME } from 'redux/mainWallet/actions' import { DUCK_SESSION } from 'redux/session/actions' @@ -100,6 +100,13 @@ export default class DepositTokensForm extends PureComponent { ...formPropTypes, } + componentWillReceiveProps (newProps) { + const firstAsset = newProps.assets.first() + if (!newProps.token.isFetched() && firstAsset) { + this.props.dispatch(change(FORM_DEPOSIT_TOKENS, 'symbol', firstAsset.symbol())) + } + } + handleApproveAsset = (values) => { this.props.onSubmit(values .set('action', ACTION_APPROVE) @@ -170,13 +177,15 @@ export default class DepositTokensForm extends PureComponent { fullWidth {...styles} > - {assets.items().map((item) => ( - <MenuItem - key={item.id()} - value={item.symbol()} - primaryText={item.symbol()} - /> - ))} + {assets + .sortBy(balance => balance.symbol()) + .map((item) => ( + <MenuItem + key={item.id()} + value={item.symbol()} + primaryText={item.symbol()} + /> + ))} </Field> ) } diff --git a/src/components/dashboard/SendTokens/SendTokensForm.jsx b/src/components/dashboard/SendTokens/SendTokensForm.jsx index faea94c96..8e2cc6bb3 100644 --- a/src/components/dashboard/SendTokens/SendTokensForm.jsx +++ b/src/components/dashboard/SendTokens/SendTokensForm.jsx @@ -15,7 +15,7 @@ import React, { PureComponent } from 'react' import { connect } from 'react-redux' import { Translate } from 'react-redux-i18n' import { SelectField, Slider, TextField } from 'redux-form-material-ui' -import { Field, formPropTypes, formValueSelector, reduxForm } from 'redux-form/immutable' +import { change, Field, formPropTypes, formValueSelector, reduxForm } from 'redux-form/immutable' import MainWallet from 'models/wallet/MainWalletModel' import { DUCK_MAIN_WALLET, getSpendersAllowance } from 'redux/mainWallet/actions' import AllowanceModel from 'models/wallet/AllowanceModel' @@ -95,6 +95,11 @@ export default class SendTokensForm extends PureComponent { if ((newProps.token.address() !== this.props.token.address() || newProps.recipient !== this.props.recipient) && newProps.token.isERC20()) { this.props.dispatch(getSpendersAllowance(newProps.token.id(), newProps.recipient)) } + + const firstBalance = newProps.wallet.balances().first() + if (!newProps.token.isFetched() && firstBalance) { + this.props.dispatch(change(FORM_SEND_TOKENS, 'symbol', firstBalance.id())) + } } checkIsContract (address): Promise { @@ -148,13 +153,15 @@ export default class SendTokensForm extends PureComponent { fullWidth {...styles} > - {balances.items().map((balance) => ( - <MenuItem - key={balance.id()} - value={balance.id()} - primaryText={balance.symbol()} - /> - ))} + {balances + .sortBy(balance => balance.symbol()) + .map((balance) => ( + <MenuItem + key={balance.id()} + value={balance.id()} + primaryText={balance.symbol()} + /> + ))} </Field> ) }