diff --git a/react/src/actions/actionCreators.js b/react/src/actions/actionCreators.js index 7e5d4c7..e8cc058 100644 --- a/react/src/actions/actionCreators.js +++ b/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, + } } \ No newline at end of file diff --git a/react/src/actions/storeType.js b/react/src/actions/storeType.js index e25876a..59e282e 100644 --- a/react/src/actions/storeType.js +++ b/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'; \ No newline at end of file +export const DASHBOARD_ELECTRUM_COINS = 'DASHBOARD_ELECTRUM_COINS'; +export const ELECTRUM_SERVER_CHANGED = 'ELECTRUM_SERVER_CHANGED'; \ No newline at end of file diff --git a/react/src/assets/images/cryptologo/mnz.png b/react/src/assets/images/cryptologo/mnz.png index 4be7385..1c1a2af 100644 Binary files a/react/src/assets/images/cryptologo/mnz.png and b/react/src/assets/images/cryptologo/mnz.png differ diff --git a/react/src/components/dashboard/coinTile/coinTileItem.js b/react/src/components/dashboard/coinTile/coinTileItem.js index 9e34746..398df93 100644 --- a/react/src/components/dashboard/coinTile/coinTileItem.js +++ b/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, diff --git a/react/src/components/dashboard/settings/settings.spvServersPanel.js b/react/src/components/dashboard/settings/settings.spvServersPanel.js index 50490a7..40f3ce1 100644 --- a/react/src/components/dashboard/settings/settings.spvServersPanel.js +++ b/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 { diff --git a/react/src/components/dashboard/walletsData/walletsData.js b/react/src/components/dashboard/walletsData/walletsData.js index 5918200..8a68f44 100644 --- a/react/src/components/dashboard/walletsData/walletsData.js +++ b/react/src/components/dashboard/walletsData/walletsData.js @@ -283,7 +283,8 @@ class WalletsData extends React.Component { Connection error! -
Try to connect to another SPV server. To do that go to "Settings" -> "SPV Server List" tab, choose new server and click "OK". +
Try to connect to another SPV server. +
To do that go to "Settings", select "SPV Server List" tab, choose new server and click "OK".
diff --git a/react/src/reducers/dashboard.js b/react/src/reducers/dashboard.js index cc3cfdf..94d37e5 100644 --- a/react/src/reducers/dashboard.js +++ b/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; }