show message on new chain (#4016)

* clear account infos on new chain

* new chain: show only snackbar

* fix new chain popup 🐛
This commit is contained in:
Jannis Redmann 2017-01-03 17:41:55 +01:00 committed by Jaco Greeff
parent e8ef7b357d
commit 9de8ba0cf5
2 changed files with 42 additions and 1 deletions

View File

@ -22,6 +22,7 @@ import SignerMiddleware from './providers/signerMiddleware';
import statusMiddleware from '~/views/Status/middleware';
import CertificationsMiddleware from './providers/certifications/middleware';
import ChainMiddleware from './providers/chainMiddleware';
export default function (api, browserHistory) {
const errors = new ErrorsMiddleware();
@ -30,12 +31,14 @@ export default function (api, browserHistory) {
const status = statusMiddleware();
const certifications = new CertificationsMiddleware();
const routeMiddleware = routerMiddleware(browserHistory);
const chain = new ChainMiddleware();
const middleware = [
settings.toMiddleware(),
signer.toMiddleware(),
errors.toMiddleware(),
certifications.toMiddleware()
certifications.toMiddleware(),
chain.toMiddleware()
];
return middleware.concat(status, routeMiddleware, thunk);

View File

@ -0,0 +1,38 @@
// Copyright 2015, 2016 Parity Technologies (UK) Ltd.
// This file is part of Parity.
// Parity is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Parity is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Parity. If not, see <http://www.gnu.org/licenses/>.
import { showSnackbar } from './snackbarActions';
export default class ChainMiddleware {
toMiddleware () {
return (store) => (next) => (action) => {
if (action.type === 'statusCollection') {
const { collection } = action;
if (collection && collection.netChain) {
const chain = collection.netChain;
const { nodeStatus } = store.getState();
if (chain !== nodeStatus.netChain) {
store.dispatch(showSnackbar(`Switched to ${chain}. Please reload the page.`, 5000));
}
}
}
next(action);
};
}
}