diff --git a/src/components/header/header.js b/src/components/header/header.js
index 2339516db2c..b6855164dfa 100644
--- a/src/components/header/header.js
+++ b/src/components/header/header.js
@@ -49,23 +49,20 @@ class Header extends React.Component {
{this.props.autoLog ?
- {((!this.props.account.expireTime ||
- this.props.account.expireTime === 0) ||
- !this.props.account.passphrase) ?
-
{this.props.t('Account locked!')} :
+ {((this.props.account.expireTime &&
+ this.props.account.expireTime !== 0) &&
+ this.props.account.passphrase) ?
{this.props.t('Address timeout in')}
{
- this.props.removePassphrase(this.props.account);
- this.props.removeSavedAccountPassphrase(this.props.account);
+ this.props.removeSavedAccountPassphrase();
}
}
/>
-
}
+
: }
:
{this.props.account.passphrase ? '' :
diff --git a/src/components/header/index.js b/src/components/header/index.js
index 68a6a535829..88220b3db71 100644
--- a/src/components/header/index.js
+++ b/src/components/header/index.js
@@ -17,7 +17,7 @@ const mapDispatchToProps = dispatch => ({
setActiveDialog: data => dispatch(dialogDisplayed(data)),
logOut: () => dispatch(accountLoggedOut()),
removePassphrase: data => dispatch(removePassphrase(data)),
- removeSavedAccountPassphrase: data => dispatch(removeSavedAccountPassphrase(data)),
+ removeSavedAccountPassphrase: () => dispatch(removeSavedAccountPassphrase()),
});
export default withRouter(connect(
mapStateToProps,
diff --git a/src/components/header/index.test.js b/src/components/header/index.test.js
index 2924050f66e..3fde7d036fe 100644
--- a/src/components/header/index.test.js
+++ b/src/components/header/index.test.js
@@ -63,8 +63,8 @@ describe('HeaderHOC', () => {
it('should dispatch removeSavedAccountPassphrase action', () => {
const actionsSpy = sinon.spy(savedAccountsActions, 'removeSavedAccountPassphrase');
- wrapper.find(Header).props().removeSavedAccountPassphrase({});
- expect(actionsSpy).to.be.calledWith({});
+ wrapper.find(Header).props().removeSavedAccountPassphrase();
+ expect(actionsSpy).to.be.calledWith();
actionsSpy.restore();
});
});
diff --git a/src/components/savedAccounts/savedAccounts.css b/src/components/savedAccounts/savedAccounts.css
index a9614453aab..e45e3480887 100644
--- a/src/components/savedAccounts/savedAccounts.css
+++ b/src/components/savedAccounts/savedAccounts.css
@@ -202,13 +202,13 @@
& span {
margin-bottom: 3px;
+ transition: transform ease-in-out 500ms;
}
&:hover {
& span {
transform: scale(1.1);
transform-origin: 100%;
- transition: transform ease-in-out 500ms;
}
}
}
diff --git a/src/components/savedAccounts/savedAccounts.js b/src/components/savedAccounts/savedAccounts.js
index 115c6006394..389f0ee7b34 100644
--- a/src/components/savedAccounts/savedAccounts.js
+++ b/src/components/savedAccounts/savedAccounts.js
@@ -73,7 +73,7 @@ class SavedAccounts extends React.Component {
this.setState({ isSecureAppears: { ...this.state.isSecureAppears, [uniqueID]: true } });
setTimeout(() => {
this.setState({ isSecureAppears: { ...this.state.isSecureAppears, [uniqueID]: false } });
- }, 3000);
+ }, 5000);
}
render() {
diff --git a/src/components/savedAccounts/savedAccounts.test.js b/src/components/savedAccounts/savedAccounts.test.js
index a1bc6b3f620..fef7e70c588 100644
--- a/src/components/savedAccounts/savedAccounts.test.js
+++ b/src/components/savedAccounts/savedAccounts.test.js
@@ -2,7 +2,7 @@ import React from 'react';
import { expect } from 'chai';
import { MemoryRouter as Router } from 'react-router-dom';
import { mount } from 'enzyme';
-import { spy } from 'sinon';
+import { spy, useFakeTimers } from 'sinon';
import configureStore from 'redux-mock-store';
import PropTypes from 'prop-types';
import i18n from '../../i18n';
@@ -106,6 +106,23 @@ describe('SavedAccounts', () => {
expect(props.history.push).to.have.been.calledWith(`${routes.main.path}${routes.dashboard.path}`);
});
+ it('should check if "Your ID is now secured!" disapears after 5sec', () => {
+ const clock = useFakeTimers({
+ toFake: ['setTimeout', 'clearTimeout', 'Date'],
+ });
+
+ expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(0);
+ wrapper.find('strong.unlocked').at(1).simulate('click');
+ clock.tick(2000);
+ expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(1);
+
+ clock.tick(7000);
+ wrapper.update();
+ expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(0);
+
+ clock.restore();
+ });
+
it('should not call props.accountSwitched on the "saved account card" click if in "edit" mode', () => {
wrapper.find('button.edit-button').simulate('click');
wrapper.find('.saved-account-card').at(0).simulate('click');
diff --git a/src/store/reducers/savedAccounts.js b/src/store/reducers/savedAccounts.js
index 50c6ec606be..38825612fdd 100644
--- a/src/store/reducers/savedAccounts.js
+++ b/src/store/reducers/savedAccounts.js
@@ -63,7 +63,7 @@ const savedAccounts = (state = { accounts: [] }, action) => {
return {
...state,
accounts: state.accounts.map((account) => {
- if ((`${action.data.network}${action.data.passphrase}` === `${account.network}${account.passphrase}`)) {
+ if (!action.data || (`${action.data.network}${action.data.passphrase}` === `${account.network}${account.passphrase}`)) {
delete account.passphrase;
}
return account;