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, GET_PIN_LIST,
DASHBOARD_SYNC_ONLY_UPDATE, DASHBOARD_SYNC_ONLY_UPDATE,
DISPLAY_IMPORT_KEY_MODAL, DISPLAY_IMPORT_KEY_MODAL,
ELECTRUM_SERVER_CHANGED,
} from './storeType'; } from './storeType';
export * from './actions/nativeSyncInfo'; export * from './actions/nativeSyncInfo';
@ -279,4 +280,11 @@ export function displayImportKeyModal(display) {
type: DISPLAY_IMPORT_KEY_MODAL, type: DISPLAY_IMPORT_KEY_MODAL,
displayImportKeyModal: display, 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 LOGIN = 'LOGIN';
export const DASHBOARD_ELECTRUM_BALANCE = 'DASHBOARD_ELECTRUM_BALANCE'; export const DASHBOARD_ELECTRUM_BALANCE = 'DASHBOARD_ELECTRUM_BALANCE';
export const DASHBOARD_ELECTRUM_TRANSACTIONS = 'DASHBOARD_ELECTRUM_TRANSACTIONS'; 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, shepherdElectrumBalance,
shepherdElectrumTransactions, shepherdElectrumTransactions,
shepherdElectrumCoins, shepherdElectrumCoins,
electrumServerChanged,
} from '../../../actions/actionCreators'; } from '../../../actions/actionCreators';
import Store from '../../../store'; import Store from '../../../store';
import Config from '../../../config'; 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() { render() {
return CoinTileItemRender.call(this); return CoinTileItemRender.call(this);
} }
} }
const mapStateToProps = (state) => { const mapStateToProps = (state) => {
return { return {
ActiveCoin: { ActiveCoin: {
coin: state.ActiveCoin.coin, coin: state.ActiveCoin.coin,
mode: state.ActiveCoin.mode,
addresses: state.ActiveCoin.addresses, addresses: state.ActiveCoin.addresses,
mainBasiliskAddress: state.ActiveCoin.mainBasiliskAddress, mainBasiliskAddress: state.ActiveCoin.mainBasiliskAddress,
progress: state.ActiveCoin.progress, progress: state.ActiveCoin.progress,

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

@ -5,6 +5,7 @@ import {
shepherdElectrumCheckServerConnection, shepherdElectrumCheckServerConnection,
shepherdElectrumSetServer, shepherdElectrumSetServer,
shepherdElectrumCoins, shepherdElectrumCoins,
electrumServerChanged,
triggerToaster, triggerToaster,
} from '../../../actions/actionCreators'; } from '../../../actions/actionCreators';
import Store from '../../../store'; import Store from '../../../store';
@ -47,6 +48,7 @@ class SPVServersPanel extends React.Component {
'success' 'success'
) )
); );
Store.dispatch(electrumServerChanged(true));
Store.dispatch(shepherdElectrumCoins()); Store.dispatch(shepherdElectrumCoins());
}); });
} else { } 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"> <td colSpan="7" className="table-cell-offset-16 color-warning">
Connection error! Connection error!
<span className={ this.props.Dashboard.electrumCoins[this.props.ActiveCoin.coin].serverList !== 'none' ? '' : 'hide' }> <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> </span>
</td> </td>
</tr> </tr>

7
react/src/reducers/dashboard.js

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

Loading…
Cancel
Save