From 80b9229469409ab5d7f45711da64678d9fbe7d35 Mon Sep 17 00:00:00 2001 From: nicocappabianca Date: Mon, 14 Sep 2020 15:15:37 -0300 Subject: [PATCH 1/2] add state, dispatch and action --- src/pages/index.js | 7 ++++--- src/redux/createStore.js | 10 +++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/index.js b/src/pages/index.js index f5eb45d..c60c8bf 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -9,8 +9,8 @@ const AdminLTE = // Maps the props that are going to be sended // to the component connected with Redux -const mapStateToProps = ({ walletInfo, bchBalance, bchWallet }) => { - return { walletInfo, bchBalance, bchWallet } +const mapStateToProps = ({ walletInfo, bchBalance, bchWallet, tokensInfo }) => { + return { walletInfo, bchBalance, bchWallet, tokensInfo } } // Send each action of the reducer as props @@ -19,7 +19,8 @@ const mapDispatchToProps = dispatch => { return { setWalletInfo: value => dispatch({ type: 'SET_WALLET_INFO', value }), updateBalance: value => dispatch({ type: 'UPDATE_BALANCE', value }), - setBchWallet: value => dispatch({ type: 'SET_BCH_WALLET', value }) + setBchWallet: value => dispatch({ type: 'SET_BCH_WALLET', value }), + setTokensInfo: value => dispatch({ type: 'SET_TOKENS_INFO', value }) } } diff --git a/src/redux/createStore.js b/src/redux/createStore.js index 8d36609..0ea96fc 100644 --- a/src/redux/createStore.js +++ b/src/redux/createStore.js @@ -47,6 +47,13 @@ const reducer = (state, action) => { }) } + // Get or update tokens information + if (action.type === 'SET_TOKENS_INFO') { + return Object.assign({}, state, { + tokensInfo: action.value + }) + } + return state } @@ -85,7 +92,8 @@ const instanceWallet = () => { const initialState = { walletInfo: localStorageInfo, // Object wallet info bchBalance: { bchBalance: 0, usdBalance: 0 }, // Wallet Balance - bchWallet: instanceWallet() // minimal-slp-wallet instance + bchWallet: instanceWallet(), // minimal-slp-wallet instance + tokensInfo: [] } const createStore = () => reduxCreateStore(reducer, initialState) From 080ef3c55460f187a6d6e3ecb0d81c2a511dceb3 Mon Sep 17 00:00:00 2001 From: nicocappabianca Date: Wed, 16 Sep 2020 21:17:30 -0300 Subject: [PATCH 2/2] use Redux store for token data --- src/components/admin-lte/index.js | 6 +++++- src/components/admin-lte/tokens/index.js | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/admin-lte/index.js b/src/components/admin-lte/index.js index 2d6d318..64400d6 100644 --- a/src/components/admin-lte/index.js +++ b/src/components/admin-lte/index.js @@ -132,6 +132,8 @@ class AdminLTEPage extends React.Component { )} @@ -394,7 +396,9 @@ AdminLTEPage.propTypes = { setWalletInfo: PropTypes.func.isRequired, // set wallet info updateBalance: PropTypes.func.isRequired, // update bch balance setBchWallet: PropTypes.func.isRequired, // set minimal-slp-wallet instance - bchWallet: PropTypes.object // get minimal-slp-wallet instance + bchWallet: PropTypes.object, // get minimal-slp-wallet instance + setTokensInfo: PropTypes.func.isRequired, // set tokens info + tokensInfo: PropTypes.array // tokens info } export default AdminLTEPage diff --git a/src/components/admin-lte/tokens/index.js b/src/components/admin-lte/tokens/index.js index 1102a6b..dd13271 100644 --- a/src/components/admin-lte/tokens/index.js +++ b/src/components/admin-lte/tokens/index.js @@ -125,7 +125,7 @@ class Tokens extends React.Component { }) } - async handleGetTokens () { + async handleGetTokens (refresh = null) { _this.setState({ inFetch: true }) @@ -141,7 +141,12 @@ class Tokens extends React.Component { } await bchWallet.walletInfoPromise - tokens = await bchWallet.listTokens() + + if(_this.props.tokensInfo.length > 0 && refresh === null) { + tokens = _this.props.tokensInfo + } else { + tokens = await bchWallet.listTokens() + } if (!tokens.length) { throw new Error('No tokens found on this wallet.') @@ -150,6 +155,9 @@ class Tokens extends React.Component { tokens, inFetch: false }) + + _this.props.setTokensInfo(tokens) + } catch (error) { _this.handleError(error) } @@ -223,6 +231,8 @@ class Tokens extends React.Component { } Tokens.propTypes = { walletInfo: PropTypes.object.isRequired, // wallet info - bchWallet: PropTypes.object // get minimal-slp-wallet instance + bchWallet: PropTypes.object, // get minimal-slp-wallet instance + setTokensInfo: PropTypes.func.isRequired, // set tokens info + tokensInfo: PropTypes.array // tokens info } export default Tokens