Commit c848f59d authored by Kenny Tran's avatar Kenny Tran Committed by Chi Kei Chan

Add loading state for getExchange (#115)

parent 2f85a8c6
...@@ -196,6 +196,13 @@ ...@@ -196,6 +196,13 @@
} }
} }
&--searching {
justify-content: center;
.loader {
margin-right: 1rem;
}
}
&:hover { &:hover {
background-color: $concrete-gray; background-color: $concrete-gray;
......
...@@ -71,6 +71,7 @@ class CurrencyInputPanel extends Component { ...@@ -71,6 +71,7 @@ class CurrencyInputPanel extends Component {
state = { state = {
isShowingModal: false, isShowingModal: false,
searchQuery: '', searchQuery: '',
loadingExchange: false,
}; };
createTokenList = () => { createTokenList = () => {
...@@ -101,7 +102,7 @@ class CurrencyInputPanel extends Component { ...@@ -101,7 +102,7 @@ class CurrencyInputPanel extends Component {
renderTokenList() { renderTokenList() {
const tokens = this.createTokenList(); const tokens = this.createTokenList();
const { searchQuery } = this.state; const { loadingExchange, searchQuery } = this.state;
const { const {
selectedTokens, selectedTokens,
disableTokenSelect, disableTokenSelect,
...@@ -114,6 +115,15 @@ class CurrencyInputPanel extends Component { ...@@ -114,6 +115,15 @@ class CurrencyInputPanel extends Component {
history, history,
} = this.props; } = this.props;
if (loadingExchange) {
return (
<div className="token-modal__token-row token-modal__token-row--searching">
<div className="loader" />
<div>Searching for Exchange...</div>
</div>
);
}
if (web3 && web3.utils && web3.utils.isAddress(searchQuery)) { if (web3 && web3.utils && web3.utils.isAddress(searchQuery)) {
const tokenAddress = searchQuery; const tokenAddress = searchQuery;
const { label } = selectors().getBalance(account, tokenAddress); const { label } = selectors().getBalance(account, tokenAddress);
...@@ -121,11 +131,14 @@ class CurrencyInputPanel extends Component { ...@@ -121,11 +131,14 @@ class CurrencyInputPanel extends Component {
const exchangeAddress = fromToken[tokenAddress]; const exchangeAddress = fromToken[tokenAddress];
if (!exchangeAddress) { if (!exchangeAddress) {
this.setState({loadingExchange: true});
factory.methods.getExchange(tokenAddress).call((err, data) => { factory.methods.getExchange(tokenAddress).call((err, data) => {
if (!err && data !== '0x0000000000000000000000000000000000000000') { if (!err && data !== '0x0000000000000000000000000000000000000000') {
addExchange({ label, tokenAddress, exchangeAddress: data }); addExchange({ label, tokenAddress, exchangeAddress: data });
} }
this.setState({loadingExchange: false});
}); });
return;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment