Skip to content

Commit ee3500c

Browse files
fix: location traffic toggle (#735)
* fix: location traffic toggle * fix conditionals --------- Co-authored-by: Maciej Wójcik <maciej@defguard.net>
1 parent c4a301c commit ee3500c

3 files changed

Lines changed: 28 additions & 17 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
]
4343
},
4444
"onlyBuiltDependencies": [
45+
"@parcel/watcher",
4546
"@swc/core",
4647
"esbuild"
4748
],

src/pages/client/pages/ClientInstancePage/components/LocationsList/components/LocationCardRoute/LocationCardRoute.tsx

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ import './style.scss';
22

33
import { error } from '@tauri-apps/plugin-log';
44
import { useMemo } from 'react';
5-
65
import { useI18nContext } from '../../../../../../../../i18n/i18n-react';
76
import { Toggle } from '../../../../../../../../shared/defguard-ui/components/Layout/Toggle/Toggle';
87
import type { ToggleOption } from '../../../../../../../../shared/defguard-ui/components/Layout/Toggle/types';
98
import { clientApi } from '../../../../../../clientAPI/clientApi';
109
import {
10+
ClientConnectionType,
1111
ClientTrafficPolicy,
1212
type CommonWireguardFields,
1313
type DefguardInstance,
@@ -36,18 +36,19 @@ export const LocationCardRoute = ({ location, selectedDefguardInstance }: Props)
3636
};
3737

3838
const { LL } = useI18nContext();
39+
3940
const toggleOptions = useMemo(() => {
40-
const res: ToggleOption<number>[] = [
41+
const res: ToggleOption<boolean>[] = [
4142
{
4243
text: LL.pages.client.pages.instancePage.controls.traffic.predefinedTraffic(),
43-
value: 0,
44+
value: false,
4445
disabled:
4546
selectedDefguardInstance?.client_traffic_policy ===
4647
ClientTrafficPolicy.FORCE_ALL_TRAFFIC,
4748
},
4849
{
4950
text: LL.pages.client.pages.instancePage.controls.traffic.allTraffic(),
50-
value: 1,
51+
value: true,
5152
disabled:
5253
selectedDefguardInstance?.client_traffic_policy ===
5354
ClientTrafficPolicy.DISABLE_ALL_TRAFFIC,
@@ -56,17 +57,26 @@ export const LocationCardRoute = ({ location, selectedDefguardInstance }: Props)
5657
return res;
5758
}, [LL.pages, selectedDefguardInstance?.client_traffic_policy]);
5859

59-
let selected: number;
60-
if (selectedDefguardInstance?.client_traffic_policy === ClientTrafficPolicy.NONE) {
61-
selected = Number(location?.route_all_traffic);
62-
} else if (
63-
selectedDefguardInstance?.client_traffic_policy ===
64-
ClientTrafficPolicy.DISABLE_ALL_TRAFFIC
65-
) {
66-
selected = 0;
67-
} else {
68-
selected = 1;
69-
}
60+
const selected = useMemo((): boolean => {
61+
// handle undefined location
62+
if (!location) return false;
63+
64+
// tunnel
65+
if (location.connection_type === ClientConnectionType.TUNNEL)
66+
return location.route_all_traffic;
67+
68+
// Defguard location
69+
if (!selectedDefguardInstance) return false;
70+
switch (selectedDefguardInstance.client_traffic_policy) {
71+
case ClientTrafficPolicy.DISABLE_ALL_TRAFFIC:
72+
return false;
73+
case ClientTrafficPolicy.FORCE_ALL_TRAFFIC:
74+
return true;
75+
case ClientTrafficPolicy.NONE:
76+
return location.route_all_traffic ?? false;
77+
}
78+
}, [location, selectedDefguardInstance]);
79+
7080
return (
7181
<Toggle
7282
className="location-traffic-toggle"
@@ -75,7 +85,7 @@ export const LocationCardRoute = ({ location, selectedDefguardInstance }: Props)
7585
disabled={location?.active}
7686
onChange={(v) => {
7787
if (!location?.active) {
78-
handleChange(Boolean(v));
88+
handleChange(v);
7989
}
8090
}}
8191
/>

src/pages/client/pages/ClientInstancePage/components/LocationsList/modals/MFAModal/components/MfaMobileApprove/MfaMobileApprove.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export const MfaMobileApprove = ({
111111
socket?.close();
112112
// go back to previous step
113113
onCancel();
114-
}
114+
};
115115

116116
return (
117117
<div id="mobile-approve-mfa">

0 commit comments

Comments
 (0)