summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2024-08-13 17:21:05 +0200
committerOskar <oskar@mullvad.net>2024-08-21 17:05:50 +0200
commite2167ef3c42006db2b0b5ba041f1199d0d3f306d (patch)
tree81b8941c12880af51faaab0be8933a9e7b53cd49 /gui/src/renderer
parentb26659e05b50c3a1b0499620f683748287707769 (diff)
downloadmullvadvpn-e2167ef3c42006db2b0b5ba041f1199d0d3f306d.tar.xz
mullvadvpn-e2167ef3c42006db2b0b5ba041f1199d0d3f306d.zip
Add feature indicator plumbing
Diffstat (limited to 'gui/src/renderer')
-rw-r--r--gui/src/renderer/app.tsx4
-rw-r--r--gui/src/renderer/redux/connection/actions.ts21
-rw-r--r--gui/src/renderer/redux/connection/reducers.ts12
3 files changed, 28 insertions, 9 deletions
diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx
index e0655707c2..a4c76aa2d1 100644
--- a/gui/src/renderer/app.tsx
+++ b/gui/src/renderer/app.tsx
@@ -783,11 +783,11 @@ export default class AppRenderer {
batch(() => {
switch (tunnelState.state) {
case 'connecting':
- actions.connection.connecting(tunnelState.details);
+ actions.connection.connecting(tunnelState.details, tunnelState.featureIndicators);
break;
case 'connected':
- actions.connection.connected(tunnelState.details);
+ actions.connection.connected(tunnelState.details, tunnelState.featureIndicators);
break;
case 'disconnecting':
diff --git a/gui/src/renderer/redux/connection/actions.ts b/gui/src/renderer/redux/connection/actions.ts
index 35af568fb2..8a3f98efe5 100644
--- a/gui/src/renderer/redux/connection/actions.ts
+++ b/gui/src/renderer/redux/connection/actions.ts
@@ -1,6 +1,7 @@
import {
AfterDisconnect,
- ErrorState,
+ ErrorStateDetails,
+ FeatureIndicator,
ILocation,
ITunnelStateRelayInfo,
} from '../../../shared/daemon-rpc-types';
@@ -8,11 +9,13 @@ import {
interface IConnectingAction {
type: 'CONNECTING';
details?: ITunnelStateRelayInfo;
+ featureIndicators?: Array<FeatureIndicator>;
}
interface IConnectedAction {
type: 'CONNECTED';
details: ITunnelStateRelayInfo;
+ featureIndicators?: Array<FeatureIndicator>;
}
interface IDisconnectedAction {
@@ -26,7 +29,7 @@ interface IDisconnectingAction {
interface IBlockedAction {
type: 'TUNNEL_ERROR';
- errorState: ErrorState;
+ errorState: ErrorStateDetails;
}
interface INewLocationAction {
@@ -48,17 +51,25 @@ export type ConnectionAction =
| IBlockedAction
| IUpdateBlockStateAction;
-function connecting(details?: ITunnelStateRelayInfo): IConnectingAction {
+function connecting(
+ details?: ITunnelStateRelayInfo,
+ featureIndicators?: Array<FeatureIndicator>,
+): IConnectingAction {
return {
type: 'CONNECTING',
details,
+ featureIndicators,
};
}
-function connected(details: ITunnelStateRelayInfo): IConnectedAction {
+function connected(
+ details: ITunnelStateRelayInfo,
+ featureIndicators?: Array<FeatureIndicator>,
+): IConnectedAction {
return {
type: 'CONNECTED',
details,
+ featureIndicators,
};
}
@@ -75,7 +86,7 @@ function disconnecting(afterDisconnect: AfterDisconnect): IDisconnectingAction {
};
}
-function blocked(errorState: ErrorState): IBlockedAction {
+function blocked(errorState: ErrorStateDetails): IBlockedAction {
return {
type: 'TUNNEL_ERROR',
errorState,
diff --git a/gui/src/renderer/redux/connection/reducers.ts b/gui/src/renderer/redux/connection/reducers.ts
index ffb0fd1d84..b597d29a64 100644
--- a/gui/src/renderer/redux/connection/reducers.ts
+++ b/gui/src/renderer/redux/connection/reducers.ts
@@ -54,13 +54,21 @@ export default function (
case 'CONNECTING':
return {
...state,
- status: { state: 'connecting', details: action.details },
+ status: {
+ state: 'connecting',
+ details: action.details,
+ featureIndicators: action.featureIndicators,
+ },
};
case 'CONNECTED':
return {
...state,
- status: { state: 'connected', details: action.details },
+ status: {
+ state: 'connected',
+ details: action.details,
+ featureIndicators: action.featureIndicators,
+ },
};
case 'DISCONNECTED':