diff options
| author | Oliver <oliver@mohlin.dev> | 2024-12-11 14:54:09 +0100 |
|---|---|---|
| committer | Joakim Hulthe <joakim.hulthe@mullvad.net> | 2024-12-18 15:12:17 +0100 |
| commit | a4dcda8c38cc0e6ba883539e29f60df1954debc9 (patch) | |
| tree | feac179710d4404674e846c184cd12a436b1f448 | |
| parent | b69ddb1e043acc0ef1d22d770e6b8c6eb613f0b2 (diff) | |
| download | mullvadvpn-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.tsx | 28 |
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> |
