diff options
| author | Erik Larkö <erik@mullvad.net> | 2017-10-02 07:42:14 +0200 |
|---|---|---|
| committer | Erik Larkö <erik@mullvad.net> | 2017-10-02 07:42:14 +0200 |
| commit | 284f3dd5a8526a4292c2ce8ecab3491d576c4ac2 (patch) | |
| tree | c99db0836e279287b19fdd3299192b6f7ea0aa75 /app | |
| parent | be7250fade3c007132a69304d1cc68bc819d3e06 (diff) | |
| parent | 5ace2e6a5db0be1024aad18606313d7aab1ffa27 (diff) | |
| download | mullvadvpn-284f3dd5a8526a4292c2ce8ecab3491d576c4ac2.tar.xz mullvadvpn-284f3dd5a8526a4292c2ce8ecab3491d576c4ac2.zip | |
Merge branch 'partial-account-token-in-redux'
Diffstat (limited to 'app')
| -rw-r--r-- | app/components/Login.js | 15 | ||||
| -rw-r--r-- | app/containers/LoginPage.js | 3 | ||||
| -rw-r--r-- | app/redux/account/actions.js | 24 | ||||
| -rw-r--r-- | app/redux/account/reducers.js | 4 |
4 files changed, 33 insertions, 13 deletions
diff --git a/app/components/Login.js b/app/components/Login.js index 1e1d7dbb5f..784d92daa8 100644 --- a/app/components/Login.js +++ b/app/components/Login.js @@ -13,6 +13,7 @@ export type LoginPropTypes = { onSettings: ?(() => void), onFirstChangeAfterFailure: () => void, onExternalLink: (type: string) => void, + onAccountTokenChange: (string) => void, }; export default class Login extends Component { @@ -20,19 +21,15 @@ export default class Login extends Component { state = { notifyOnFirstChangeAfterFailure: false, isActive: false, - unsubmittedAccountToken: '', }; onCreateAccount = () => this.props.onExternalLink('createAccount'); onFocus = () => this.setState({ isActive: true }); onBlur = () => this.setState({ isActive: false }); onLogin = () => { - const accountToken = this.state.unsubmittedAccountToken; + const accountToken = this.props.account.accountToken; if(accountToken && accountToken.length > 0) { this.props.onLogin(accountToken); - this.setState({ - unsubmittedAccountToken: '', - }); } } @@ -42,9 +39,7 @@ export default class Login extends Component { this.setState({ notifyOnFirstChangeAfterFailure: false }); this.props.onFirstChangeAfterFailure(); } - this.setState({ - unsubmittedAccountToken: val, - }); + this.props.onAccountTokenChange(val); } formTitle(s: LoginState): string { @@ -168,9 +163,7 @@ export default class Login extends Component { _createLoginForm(): React.Element<*> { const { status, error } = this.props.account; - const accountToken = status === 'logging in' - ? this.props.account.accountToken - : this.state.unsubmittedAccountToken; + const accountToken = this.props.account.accountToken; const inputDisabled = status === 'logging in'; diff --git a/app/containers/LoginPage.js b/app/containers/LoginPage.js index ef4698fad1..457be7a6f2 100644 --- a/app/containers/LoginPage.js +++ b/app/containers/LoginPage.js @@ -14,7 +14,8 @@ const mapDispatchToProps = (dispatch, props) => { onSettings: () => dispatch(push('/settings')), onLogin: (account) => login(backend, account), onFirstChangeAfterFailure: () => dispatch(accountActions.resetLoginError()), - onExternalLink: (type) => shell.openExternal(links[type]) + onExternalLink: (type) => shell.openExternal(links[type]), + onAccountTokenChange: (token) => dispatch(accountActions.updateAccountToken(token)), }; }; diff --git a/app/redux/account/actions.js b/app/redux/account/actions.js index 30089b1d56..d528f4f3d0 100644 --- a/app/redux/account/actions.js +++ b/app/redux/account/actions.js @@ -23,6 +23,11 @@ type ResetLoginErrorAction = { type: 'RESET_LOGIN_ERROR', }; +type UpdateAccountTokenAction = { + type: 'UPDATE_ACCOUNT_TOKEN', + token: string, +}; + export type AccountAction = StartLoginAction | LoginSuccessfulAction | LoginFailedAction @@ -66,7 +71,24 @@ function resetLoginError(): ResetLoginErrorAction { }; } +function updateAccountToken(token: string): UpdateAccountTokenAction { + return { + type: 'UPDATE_ACCOUNT_TOKEN', + token: token, + }; +} + const login = (backend: Backend, account: string) => () => backend.login(account); const logout = (backend: Backend) => () => backend.logout(); -export default { login, logout, startLogin, loginSuccessful, loginFailed, loggedOut, autoLoginFailed, resetLoginError }; +export default { + login, + logout, + startLogin, + loginSuccessful, + loginFailed, + loggedOut, + autoLoginFailed, + resetLoginError, + updateAccountToken, +}; diff --git a/app/redux/account/reducers.js b/app/redux/account/reducers.js index 6107f08195..27530499c9 100644 --- a/app/redux/account/reducers.js +++ b/app/redux/account/reducers.js @@ -53,6 +53,10 @@ export default function(state: AccountReduxState = initialState, action: ReduxAc status: 'none', error: null, }}; + case 'UPDATE_ACCOUNT_TOKEN': + return { ...state, ...{ + accountToken: action.token, + }}; } return state; |
