Break out rpc update and rpclist into two reducers.

feature/default_network_editable
Kevin Serrano 8 years ago
parent e66035254f
commit 2a98beb878
No known key found for this signature in database
GPG Key ID: 7CC862A58D2889B4
  1. 30
      ui/app/actions.js
  2. 4
      ui/app/app.js
  3. 8
      ui/app/reducers/metamask.js

@ -112,11 +112,13 @@ var actions = {
// config screen // config screen
SHOW_CONFIG_PAGE: 'SHOW_CONFIG_PAGE', SHOW_CONFIG_PAGE: 'SHOW_CONFIG_PAGE',
SET_RPC_TARGET: 'SET_RPC_TARGET', SET_RPC_TARGET: 'SET_RPC_TARGET',
SET_DEFAULT_RPC_TARGET: 'SET_DEFAULT_RPC_TARGET',
SET_PROVIDER_TYPE: 'SET_PROVIDER_TYPE', SET_PROVIDER_TYPE: 'SET_PROVIDER_TYPE',
USE_ETHERSCAN_PROVIDER: 'USE_ETHERSCAN_PROVIDER', USE_ETHERSCAN_PROVIDER: 'USE_ETHERSCAN_PROVIDER',
useEtherscanProvider: useEtherscanProvider, useEtherscanProvider: useEtherscanProvider,
showConfigPage: showConfigPage, showConfigPage: showConfigPage,
setRpcTarget: setRpcTarget, setRpcTarget: setRpcTarget,
setDefaultRpcTarget: setDefaultRpcTarget,
setProviderType: setProviderType, setProviderType: setProviderType,
// loading overlay // loading overlay
SHOW_LOADING: 'SHOW_LOADING_INDICATION', SHOW_LOADING: 'SHOW_LOADING_INDICATION',
@ -669,18 +671,34 @@ function markAccountsFound() {
// config // config
// //
// default rpc target refers to localhost:8545 in this instance.
function setDefaultRpcTarget (rpcList) {
log.debug(`background.setDefaultRpcTarget`)
background.setRpcTarget('http://localhost:8545')
return (dispatch) => {
dispatch({
type: actions.SET_RPC_TARGET,
value: 'http://localhost:8545',
})
dispatch({
type: actions.SET_RPC_LIST,
value: rpcList,
})
}
}
function setRpcTarget (newRpc) { function setRpcTarget (newRpc) {
return (dispatch) => { return (dispatch) => {
log.debug(`background.setRpcTarget`) log.debug(`background.setRpcTarget`)
background.setRpcTarget(newRpc) background.setRpcTarget(newRpc)
background.updateFrequentRpcList(newRpc, (frequentRpcList) => { background.updateFrequentRpcList(newRpc, (rpcList) => {
const value = {
rpcTarget: newRpc,
frequentRpcList,
}
dispatch({ dispatch({
type: actions.SET_RPC_TARGET, type: actions.SET_RPC_TARGET,
value, value: newRpc,
})
dispatch({
type: actions.SET_RPC_LIST,
value: rpcList,
}) })
}) })
} }

@ -258,9 +258,7 @@ App.prototype.renderNetworkDropdown = function () {
h(DropMenuItem, { h(DropMenuItem, {
label: 'Localhost 8545', label: 'Localhost 8545',
closeMenu: () => this.setState({ isNetworkMenuOpen: false }), closeMenu: () => this.setState({ isNetworkMenuOpen: false }),
action: () => { action: () => props.dispatch(actions.setDefaultRpcTarget(rpcList)),
props.dispatch(actions.setRpcTarget('http://localhost:8545'))
},
icon: h('i.fa.fa-question-circle.fa-lg'), icon: h('i.fa.fa-question-circle.fa-lg'),
activeNetworkRender: props.provider.rpcTarget, activeNetworkRender: props.provider.rpcTarget,
}), }),

@ -53,12 +53,16 @@ function reduceMetamask (state, action) {
isUnlocked: false, isUnlocked: false,
}) })
case actions.SET_RPC_LIST:
return extend(metamaskState, {
frequentRpcList: action.value,
})
case actions.SET_RPC_TARGET: case actions.SET_RPC_TARGET:
return extend(metamaskState, { return extend(metamaskState, {
frequentRpcList: action.value.frequentRpcList,
provider: { provider: {
type: 'rpc', type: 'rpc',
rpcTarget: action.value.rpcTarget, rpcTarget: action.value,
}, },
}) })

Loading…
Cancel
Save