From 0785bd3210137a50ccfb3f6621ec95d7b7816705 Mon Sep 17 00:00:00 2001 From: Osvaldo Vega Date: Tue, 13 Aug 2019 10:37:05 +0200 Subject: [PATCH 1/3] :recycle: Update logic when network switcher it is disablde --- src/components/topBar/index.js | 5 ++++- src/components/topBar/topBar.js | 14 ++++++++++++-- src/components/topBar/topBar.test.js | 4 ++++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/components/topBar/index.js b/src/components/topBar/index.js index 21ec58761b..65ba195086 100644 --- a/src/components/topBar/index.js +++ b/src/components/topBar/index.js @@ -4,6 +4,7 @@ import { withRouter } from 'react-router'; import { translate } from 'react-i18next'; import { accountLoggedOut, accountUpdated } from '../../actions/account'; import { settingsUpdated } from '../../actions/settings'; +import { networkSet } from '../../actions/network'; import accountConfig from '../../constants/account'; import TopBar from './topBar'; @@ -12,12 +13,14 @@ const mapStateToProps = state => ({ network: state.network, token: state.settings.token, autoLogout: state.settings.autoLog, + settings: state.settings, }); const mapDispatchToProps = { - settingsUpdated, logOut: accountLoggedOut, + networkSet, resetTimer: () => accountUpdated({ expireTime: Date.now() + accountConfig.lockDuration }), + settingsUpdated, }; export default withRouter(connect(mapStateToProps, mapDispatchToProps)(translate()(TopBar))); diff --git a/src/components/topBar/topBar.js b/src/components/topBar/topBar.js index b861339250..d5c758dc9b 100644 --- a/src/components/topBar/topBar.js +++ b/src/components/topBar/topBar.js @@ -8,6 +8,7 @@ import menuLinks from './constants'; import Dropdown from '../toolbox/dropdown/dropdown'; import SearchBar from '../searchBar'; import Network from './network'; +import networks from '../../constants/networks'; import styles from './topBar.css'; import OutsideClickHandler from '../toolbox/outsideClickHandler'; @@ -31,9 +32,18 @@ class TopBar extends React.Component { } onLogout() { + const { + logOut, history, settings, settingsUpdated, networkSet, network, + } = this.props; + Piwik.trackingEvent('Header', 'button', 'Open logout dialog'); - this.props.logOut(); - this.props.history.replace(`${routes.dashboard.path}`); + logOut(); + history.replace(`${routes.dashboard.path}`); + + if (!settings.showNetwork && network.name !== networks.mainnet.name) { + settingsUpdated({ network: { name: networks.mainnet.name } }); + networkSet(networks.mainnet); + } } onHandleClick(name) { diff --git a/src/components/topBar/topBar.test.js b/src/components/topBar/topBar.test.js index d2d556ec69..59e3b666e0 100644 --- a/src/components/topBar/topBar.test.js +++ b/src/components/topBar/topBar.test.js @@ -57,7 +57,11 @@ describe('TopBar', () => { }, }, }, + settings: { + network: { name: 'Custom Nodee', address: 'hhtp://localhost:4000' }, + }, settingsUpdated: jest.fn(), + networkSet: jest.fn(), }; const history = { From 60da24a8d6fa58a676eefc100dc23ef045adffe6 Mon Sep 17 00:00:00 2001 From: Osvaldo Vega Date: Tue, 13 Aug 2019 15:20:51 +0200 Subject: [PATCH 2/3] :recycle: Update setttings file --- src/components/setting/index.js | 2 ++ src/components/setting/setting.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/components/setting/index.js b/src/components/setting/index.js index 5e1a95b461..316c8a6301 100644 --- a/src/components/setting/index.js +++ b/src/components/setting/index.js @@ -5,6 +5,7 @@ import Setting from './setting'; import { settingsUpdated } from '../../actions/settings'; import { toastDisplayed } from '../../actions/toaster'; import { accountUpdated } from '../../actions/account'; +import { networkSet } from '../../actions/network'; import { getActiveTokenAccount } from '../../utils/account'; const mapStateToProps = state => ({ @@ -17,6 +18,7 @@ const mapStateToProps = state => ({ const mapDispatchToProps = { accountUpdated, + networkSet, settingsUpdated, toastDisplayed, }; diff --git a/src/components/setting/setting.js b/src/components/setting/setting.js index 9196b45644..7c12edd303 100644 --- a/src/components/setting/setting.js +++ b/src/components/setting/setting.js @@ -9,6 +9,7 @@ import links from '../../constants/externalLinks'; import settingsConst from '../../constants/settings'; import styles from './setting.css'; import txTypes from '../../constants/transactionTypes'; +import networks from '../../constants/networks'; import SecondPassphraseSetting from './secondPassphrase'; class Setting extends React.Component { @@ -24,6 +25,19 @@ class Setting extends React.Component { this.handleTokenToggle = this.handleTokenToggle.bind(this); } + // istanbul ignore next + componentDidUpdate(prevProps) { + const { + settings, account, settingsUpdated, networkSet, + } = this.props; + if (Object.entries(account).length === 1 + && prevProps.settings.showNetwork !== settings.showNetwork + && !settings.showNetwork) { + settingsUpdated({ network: { name: networks.mainnet.name } }); + networkSet(networks.mainnet); + } + } + handleTokenToggle({ target: { name } }) { const { settings } = this.props; const newSettings = { From 47001d6c023e317f1d0f609334a9c586b898456d Mon Sep 17 00:00:00 2001 From: Osvaldo Vega Date: Wed, 14 Aug 2019 12:37:05 +0200 Subject: [PATCH 3/3] :recycle: Update logic from settings to account middleware --- src/components/setting/setting.js | 14 -------------- src/components/topBar/topBar.js | 3 +-- src/store/middlewares/account.js | 30 +++++++++++++++++++++--------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/components/setting/setting.js b/src/components/setting/setting.js index 7c12edd303..9196b45644 100644 --- a/src/components/setting/setting.js +++ b/src/components/setting/setting.js @@ -9,7 +9,6 @@ import links from '../../constants/externalLinks'; import settingsConst from '../../constants/settings'; import styles from './setting.css'; import txTypes from '../../constants/transactionTypes'; -import networks from '../../constants/networks'; import SecondPassphraseSetting from './secondPassphrase'; class Setting extends React.Component { @@ -25,19 +24,6 @@ class Setting extends React.Component { this.handleTokenToggle = this.handleTokenToggle.bind(this); } - // istanbul ignore next - componentDidUpdate(prevProps) { - const { - settings, account, settingsUpdated, networkSet, - } = this.props; - if (Object.entries(account).length === 1 - && prevProps.settings.showNetwork !== settings.showNetwork - && !settings.showNetwork) { - settingsUpdated({ network: { name: networks.mainnet.name } }); - networkSet(networks.mainnet); - } - } - handleTokenToggle({ target: { name } }) { const { settings } = this.props; const newSettings = { diff --git a/src/components/topBar/topBar.js b/src/components/topBar/topBar.js index d5c758dc9b..83b6a9a5c8 100644 --- a/src/components/topBar/topBar.js +++ b/src/components/topBar/topBar.js @@ -33,7 +33,7 @@ class TopBar extends React.Component { onLogout() { const { - logOut, history, settings, settingsUpdated, networkSet, network, + logOut, history, settings, networkSet, network, } = this.props; Piwik.trackingEvent('Header', 'button', 'Open logout dialog'); @@ -41,7 +41,6 @@ class TopBar extends React.Component { history.replace(`${routes.dashboard.path}`); if (!settings.showNetwork && network.name !== networks.mainnet.name) { - settingsUpdated({ network: { name: networks.mainnet.name } }); networkSet(networks.mainnet); } } diff --git a/src/store/middlewares/account.js b/src/store/middlewares/account.js index b7f704ac51..1e081cee80 100644 --- a/src/store/middlewares/account.js +++ b/src/store/middlewares/account.js @@ -102,6 +102,7 @@ const checkTransactionsAndUpdateAccount = (store, action) => { } }; +// istanbul ignore next const getNetworkFromLocalStorage = () => { const mySettings = localJSONStorage.get('settings', {}); if (!mySettings.network) return networks.mainnet; @@ -114,7 +115,7 @@ const getNetworkFromLocalStorage = () => { }; // eslint-disable-next-line max-statements -const checkNetworkToConnet = () => { +const checkNetworkToConnet = (storeSettings) => { const autologinData = getAutoLogInData(); let loginNetwork = findMatchingLoginNetwork(); @@ -140,14 +141,24 @@ const checkNetworkToConnet = () => { }; } + // istanbul ignore next if (!loginNetwork && !autologinData.liskCoreUrl) { - const currentNetwork = getNetworkFromLocalStorage(); - loginNetwork = { - name: currentNetwork.name, - network: { - ...currentNetwork, - }, - }; + if (storeSettings.showNetwork) { + const currentNetwork = getNetworkFromLocalStorage(); + loginNetwork = { + name: currentNetwork.name, + network: { + ...currentNetwork, + }, + }; + } else { + loginNetwork = { + name: networks.mainnet.name, + network: { + ...networks.mainnet, + }, + }; + } } return loginNetwork; @@ -155,6 +166,7 @@ const checkNetworkToConnet = () => { // eslint-disable-next-line max-statements const autoLogInIfNecessary = async (store) => { + const actualSettings = store && store.getState().settings; const autologinData = getAutoLogInData(); let loginNetwork; @@ -180,7 +192,7 @@ const autoLogInIfNecessary = async (store) => { }; } } else { - loginNetwork = checkNetworkToConnet(); + loginNetwork = checkNetworkToConnet(actualSettings); } store.dispatch(await networkSet(loginNetwork));