diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2018-12-18 16:21:43 +0100 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2018-12-18 16:21:43 +0100 |
| commit | 84456ece2032cb74a689aaa6b5d94ed1d2ef4816 (patch) | |
| tree | 0dcdb0351266358509dc4a7acbd7fc851d0ac11c /gui | |
| parent | e26d4e467b87ab980fbbb5792f7444985e55edaf (diff) | |
| parent | 7667fc3aceb8fe6346a2e76cf9886adf588f3c66 (diff) | |
| download | mullvadvpn-84456ece2032cb74a689aaa6b5d94ed1d2ef4816.tar.xz mullvadvpn-84456ece2032cb74a689aaa6b5d94ed1d2ef4816.zip | |
Merge branch 'connect-when-disconnecting'
Diffstat (limited to 'gui')
| -rw-r--r-- | gui/packages/desktop/src/renderer/app.js | 18 | ||||
| -rw-r--r-- | gui/packages/desktop/src/renderer/containers/ConnectPage.js | 4 |
2 files changed, 12 insertions, 10 deletions
diff --git a/gui/packages/desktop/src/renderer/app.js b/gui/packages/desktop/src/renderer/app.js index 0f281ab42c..2ec2d2992b 100644 --- a/gui/packages/desktop/src/renderer/app.js +++ b/gui/packages/desktop/src/renderer/app.js @@ -228,20 +228,22 @@ export default class AppRenderer { } } - async connectTunnel() { - const actions = this._reduxActions; + async connectTunnel(): Promise<void> { + const state = this._tunnelState.state; // connect only if tunnel is disconnected or blocked. - if (this._tunnelState.state === 'disconnected' || this._tunnelState.state === 'blocked') { - // switch to connecting state immediately to prevent a lag that may be caused by RPC - // communication delay - actions.connection.connecting(null); + if (state === 'disconnecting' || state === 'disconnected' || state === 'blocked') { + // switch to the connecting state ahead of time to make the app look more responsive + this._reduxActions.connection.connecting(null); - await this._daemonRpc.connectTunnel(); + return this._daemonRpc.connectTunnel(); } } - disconnectTunnel() { + disconnectTunnel(): Promise<void> { + // switch to the disconnected state ahead of time to make the app look more responsive + this._reduxActions.connection.disconnected(); + return this._daemonRpc.disconnectTunnel(); } diff --git a/gui/packages/desktop/src/renderer/containers/ConnectPage.js b/gui/packages/desktop/src/renderer/containers/ConnectPage.js index f433a795e2..57ca284c4b 100644 --- a/gui/packages/desktop/src/renderer/containers/ConnectPage.js +++ b/gui/packages/desktop/src/renderer/containers/ConnectPage.js @@ -82,9 +82,9 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: SharedRouteProps) => onSelectLocation: () => { history.push('/select-location'); }, - onConnect: () => { + onConnect: async () => { try { - props.app.connectTunnel(); + await props.app.connectTunnel(); } catch (error) { log.error(`Failed to connect the tunnel: ${error.message}`); } |
