summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2024-12-11 14:54:09 +0100
committerJoakim Hulthe <joakim.hulthe@mullvad.net>2024-12-18 15:12:17 +0100
commita4dcda8c38cc0e6ba883539e29f60df1954debc9 (patch)
treefeac179710d4404674e846c184cd12a436b1f448
parentb69ddb1e043acc0ef1d22d770e6b8c6eb613f0b2 (diff)
downloadmullvadvpn-a4dcda8c38cc0e6ba883539e29f60df1954debc9.tar.xz
mullvadvpn-a4dcda8c38cc0e6ba883539e29f60df1954debc9.zip
Allow users to disable split tunneling when enabled
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx28
1 files changed, 14 insertions, 14 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx
index 645eb09187..a24790e66a 100644
--- a/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx
@@ -313,9 +313,7 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
needFullDiskPermissions,
setSplitTunnelingState,
} = useAppContext();
- const splitTunnelingEnabledValue = useSelector(
- (state: IReduxState) => state.settings.splitTunneling,
- );
+ const splitTunnelingEnabled = useSelector((state: IReduxState) => state.settings.splitTunneling);
const splitTunnelingApplications = useSelector(
(state: IReduxState) => state.settings.splitTunnelingApplications,
);
@@ -328,7 +326,7 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
window.env.platform === 'darwin' ? undefined : true,
);
- const splitTunnelingEnabled = splitTunnelingEnabledValue && (splitTunnelingAvailable ?? false);
+ const canEditSplitTunneling = splitTunnelingEnabled && (splitTunnelingAvailable ?? false);
const fetchNeedFullDiskPermissions = useCallback(async () => {
setLoadingDiskPermissions(true);
@@ -376,12 +374,12 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
const addApplication = useCallback(
async (application: ISplitTunnelingApplication | string) => {
- if (!splitTunnelingEnabled) {
+ if (!canEditSplitTunneling) {
await setSplitTunnelingState(true);
}
await addSplitTunnelingApplication(application);
},
- [addSplitTunnelingApplication, splitTunnelingEnabled, setSplitTunnelingState],
+ [addSplitTunnelingApplication, canEditSplitTunneling, setSplitTunnelingState],
);
const addBrowsedForApplication = useCallback(
@@ -404,12 +402,12 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
const removeApplication = useCallback(
async (application: ISplitTunnelingApplication) => {
- if (!splitTunnelingEnabled) {
+ if (!canEditSplitTunneling) {
await setSplitTunnelingState(true);
}
removeSplitTunnelingApplication(application);
},
- [removeSplitTunnelingApplication, setSplitTunnelingState, splitTunnelingEnabled],
+ [removeSplitTunnelingApplication, setSplitTunnelingState, canEditSplitTunneling],
);
const filePickerCallback = useFilePicker(
@@ -441,9 +439,9 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
[addApplication, forgetManuallyAddedApplicationAndUpdate],
);
- const showSplitSection = splitTunnelingEnabled && filteredSplitApplications.length > 0;
+ const showSplitSection = canEditSplitTunneling && filteredSplitApplications.length > 0;
const showNonSplitSection =
- splitTunnelingEnabled &&
+ canEditSplitTunneling &&
(!filteredNonSplitApplications || filteredNonSplitApplications.length > 0);
const excludedTitle = (
@@ -463,7 +461,9 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
<HeaderTitle>{strings.splitTunneling}</HeaderTitle>
<Switch
isOn={splitTunnelingEnabled}
- disabled={!splitTunnelingAvailable || loadingDiskPermissions}
+ disabled={
+ !splitTunnelingEnabled && (!splitTunnelingAvailable || loadingDiskPermissions)
+ }
onChange={setSplitTunnelingState}
/>
</Flex>
@@ -491,7 +491,7 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
</Flex>
)}
- {splitTunnelingEnabled && (
+ {canEditSplitTunneling && (
<StyledSearchBar searchTerm={searchTerm} onSearch={setSearchTerm} />
)}
@@ -515,7 +515,7 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
</Cell.Section>
</Accordion>
- {splitTunnelingEnabled && searchTerm !== '' && !showSplitSection && !showNonSplitSection && (
+ {canEditSplitTunneling && searchTerm !== '' && !showSplitSection && !showNonSplitSection && (
<StyledNoResult>
<StyledNoResultText>
{formatHtml(
@@ -526,7 +526,7 @@ export function SplitTunnelingSettings(props: IPlatformSplitTunnelingSettingsPro
</StyledNoResult>
)}
- {splitTunnelingEnabled && (
+ {canEditSplitTunneling && (
<StyledBrowseButton onClick={addWithFilePicker}>
{messages.pgettext('split-tunneling-view', 'Find another app')}
</StyledBrowseButton>