summaryrefslogtreecommitdiffhomepage
path: root/gui
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2018-12-18 16:21:43 +0100
committerAndrej Mihajlov <and@mullvad.net>2018-12-18 16:21:43 +0100
commit84456ece2032cb74a689aaa6b5d94ed1d2ef4816 (patch)
tree0dcdb0351266358509dc4a7acbd7fc851d0ac11c /gui
parente26d4e467b87ab980fbbb5792f7444985e55edaf (diff)
parent7667fc3aceb8fe6346a2e76cf9886adf588f3c66 (diff)
downloadmullvadvpn-84456ece2032cb74a689aaa6b5d94ed1d2ef4816.tar.xz
mullvadvpn-84456ece2032cb74a689aaa6b5d94ed1d2ef4816.zip
Merge branch 'connect-when-disconnecting'
Diffstat (limited to 'gui')
-rw-r--r--gui/packages/desktop/src/renderer/app.js18
-rw-r--r--gui/packages/desktop/src/renderer/containers/ConnectPage.js4
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}`);
}