Browse Source

spv trigger dashboard update if server was changed

v0.25
pbca26 7 years ago
parent
commit
3d21e71265
  1. 8
      react/src/actions/actionCreators.js
  2. 3
      react/src/actions/storeType.js
  3. BIN
      react/src/assets/images/cryptologo/mnz.png
  4. 21
      react/src/components/dashboard/coinTile/coinTileItem.js
  5. 2
      react/src/components/dashboard/settings/settings.spvServersPanel.js
  6. 3
      react/src/components/dashboard/walletsData/walletsData.js
  7. 7
      react/src/reducers/dashboard.js

8
react/src/actions/actionCreators.js

@ -27,6 +27,7 @@ import {
GET_PIN_LIST,
DASHBOARD_SYNC_ONLY_UPDATE,
DISPLAY_IMPORT_KEY_MODAL,
ELECTRUM_SERVER_CHANGED,
} from './storeType';
export * from './actions/nativeSyncInfo';
@ -279,4 +280,11 @@ export function displayImportKeyModal(display) {
type: DISPLAY_IMPORT_KEY_MODAL,
displayImportKeyModal: display,
}
}
export function electrumServerChanged(isChanged) {
return {
type: ELECTRUM_SERVER_CHANGED,
eletrumServerChanged: isChanged,
}
}

3
react/src/actions/storeType.js

@ -44,4 +44,5 @@ export const DISPLAY_IMPORT_KEY_MODAL = 'DISPLAY_IMPORT_KEY_MODAL';
export const LOGIN = 'LOGIN';
export const DASHBOARD_ELECTRUM_BALANCE = 'DASHBOARD_ELECTRUM_BALANCE';
export const DASHBOARD_ELECTRUM_TRANSACTIONS = 'DASHBOARD_ELECTRUM_TRANSACTIONS';
export const DASHBOARD_ELECTRUM_COINS = 'DASHBOARD_ELECTRUM_COINS';
export const DASHBOARD_ELECTRUM_COINS = 'DASHBOARD_ELECTRUM_COINS';
export const ELECTRUM_SERVER_CHANGED = 'ELECTRUM_SERVER_CHANGED';

BIN
react/src/assets/images/cryptologo/mnz.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 19 KiB

21
react/src/components/dashboard/coinTile/coinTileItem.js

@ -18,6 +18,7 @@ import {
shepherdElectrumBalance,
shepherdElectrumTransactions,
shepherdElectrumCoins,
electrumServerChanged,
} from '../../../actions/actionCreators';
import Store from '../../../store';
import Config from '../../../config';
@ -163,14 +164,34 @@ class CoinTileItem extends React.Component {
}
}
componentWillReceiveProps(props) {
console.warn(props);
if (this.props &&
this.props.Dashboard &&
this.props.Dashboard.eletrumServerChanged &&
this.props.ActiveCoin.mode === 'spv' &&
this.props.Dashboard &&
this.props.Dashboard.activeSection === 'wallets') {
console.warn('trigger spv dashboard update');
Store.dispatch(shepherdElectrumBalance(this.props.ActiveCoin.coin, this.props.Dashboard.electrumCoins[this.props.ActiveCoin.coin].pub));
Store.dispatch(shepherdElectrumTransactions(this.props.ActiveCoin.coin, this.props.Dashboard.electrumCoins[this.props.ActiveCoin.coin].pub));
Store.dispatch(electrumServerChanged(false));
setTimeout(() => {
Store.dispatch(electrumServerChanged(false));
}, 100);
}
}
render() {
return CoinTileItemRender.call(this);
}
}
const mapStateToProps = (state) => {
return {
ActiveCoin: {
coin: state.ActiveCoin.coin,
mode: state.ActiveCoin.mode,
addresses: state.ActiveCoin.addresses,
mainBasiliskAddress: state.ActiveCoin.mainBasiliskAddress,
progress: state.ActiveCoin.progress,

2
react/src/components/dashboard/settings/settings.spvServersPanel.js

@ -5,6 +5,7 @@ import {
shepherdElectrumCheckServerConnection,
shepherdElectrumSetServer,
shepherdElectrumCoins,
electrumServerChanged,
triggerToaster,
} from '../../../actions/actionCreators';
import Store from '../../../store';
@ -47,6 +48,7 @@ class SPVServersPanel extends React.Component {
'success'
)
);
Store.dispatch(electrumServerChanged(true));
Store.dispatch(shepherdElectrumCoins());
});
} else {

3
react/src/components/dashboard/walletsData/walletsData.js

@ -283,7 +283,8 @@ class WalletsData extends React.Component {
<td colSpan="7" className="table-cell-offset-16 color-warning">
Connection error!
<span className={ this.props.Dashboard.electrumCoins[this.props.ActiveCoin.coin].serverList !== 'none' ? '' : 'hide' }>
<br/>Try to connect to another SPV server. To do that go to "Settings" -> "SPV Server List" tab, choose new server and click "OK".
<br/>Try to connect to another SPV server.
<br/>To do that go to "Settings", select "SPV Server List" tab, choose new server and click "OK".
</span>
</td>
</tr>

7
react/src/reducers/dashboard.js

@ -6,6 +6,7 @@ import {
DASHBOARD_SYNC_ONLY_UPDATE,
DISPLAY_IMPORT_KEY_MODAL,
DASHBOARD_ELECTRUM_COINS,
ELECTRUM_SERVER_CHANGED,
} from '../actions/storeType';
export function Dashboard(state = {
@ -16,6 +17,7 @@ export function Dashboard(state = {
skipFullDashboardUpdate: false,
displayImportKeyModal: false,
electrumCoins: {},
eletrumServerChanged: false,
}, action) {
switch (action.type) {
case DASHBOARD_ELECTRUM_COINS:
@ -56,6 +58,11 @@ export function Dashboard(state = {
...state,
skipFullDashboardUpdate: action.skipFullDashboardUpdate,
};
case ELECTRUM_SERVER_CHANGED:
return {
...state,
eletrumServerChanged: action.eletrumServerChanged,
};
default:
return state;
}

Loading…
Cancel
Save