summaryrefslogtreecommitdiffhomepage
path: root/gui/src
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2024-09-23 17:58:40 +0200
committerOskar <oskar@mullvad.net>2024-09-30 09:20:20 +0200
commit52153bfa2cfb9bd902ab09822f29902e687d0d5c (patch)
tree66c3f3cba2a1a814b95ae0a9eaadca725906aa7a /gui/src
parent591133981646ae720813a762e42cda4d8ee1411e (diff)
downloadmullvadvpn-52153bfa2cfb9bd902ab09822f29902e687d0d5c.tar.xz
mullvadvpn-52153bfa2cfb9bd902ab09822f29902e687d0d5c.zip
Move DAITA to top level settings
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/renderer/components/DaitaSettings.tsx22
-rw-r--r--gui/src/renderer/components/Settings.tsx19
-rw-r--r--gui/src/renderer/components/WireguardSettings.tsx17
-rw-r--r--gui/src/renderer/lib/routes.ts2
4 files changed, 41 insertions, 19 deletions
diff --git a/gui/src/renderer/components/DaitaSettings.tsx b/gui/src/renderer/components/DaitaSettings.tsx
index 3176192ad1..31d9a747e7 100644
--- a/gui/src/renderer/components/DaitaSettings.tsx
+++ b/gui/src/renderer/components/DaitaSettings.tsx
@@ -119,6 +119,13 @@ function DaitaToggle() {
<Cell.Switch isOn={daita} onChange={setDaita} />
</AriaInput>
</Cell.Container>
+ {unavailable ? (
+ <Cell.CellFooter>
+ <AriaDescription>
+ <Cell.CellFooterText>{featureUnavailableMessage()}</Cell.CellFooterText>
+ </AriaDescription>
+ </Cell.CellFooter>
+ ) : null}
</AriaInputGroup>
<AriaInputGroup>
<Cell.Container disabled={!daita}>
@@ -138,7 +145,7 @@ function DaitaToggle() {
{sprintf(
messages.pgettext(
'vpn-settings-view',
- 'Is automatically enabled with %(daita)s, makes it possible to use %(daita)s with any server by using multihop. This might increase latency.',
+ 'Makes it possible to use %(daita)s with any server and is automatically enabled.',
),
{ daita: strings.daita },
)}
@@ -191,3 +198,16 @@ export function SmartRoutingModalMessage() {
</ModalMessage>
);
}
+
+function featureUnavailableMessage() {
+ const automatic = messages.gettext('Automatic');
+ const tunnelProtocol = messages.pgettext('vpn-settings-view', 'Tunnel protocol');
+
+ return sprintf(
+ messages.pgettext(
+ 'wireguard-settings-view',
+ 'Switch to “%(wireguard)s” or “%(automatic)s” in Settings > %(tunnelProtocol)s to make %(setting)s available.',
+ ),
+ { wireguard: strings.wireguard, automatic, tunnelProtocol, setting: strings.daita },
+ );
+}
diff --git a/gui/src/renderer/components/Settings.tsx b/gui/src/renderer/components/Settings.tsx
index 2280998d3a..d76ebb242e 100644
--- a/gui/src/renderer/components/Settings.tsx
+++ b/gui/src/renderer/components/Settings.tsx
@@ -71,6 +71,7 @@ export default function Support() {
<Cell.Group>
<UserInterfaceSettingsButton />
<MultihopButton />
+ <DaitaButton />
<VpnSettingsButton />
</Cell.Group>
@@ -152,6 +153,24 @@ function MultihopButton() {
);
}
+function DaitaButton() {
+ const history = useHistory();
+ const navigate = useCallback(() => history.push(RoutePath.daitaSettings), [history]);
+ const daita = useSelector((state) => state.settings.wireguard.daita?.enabled ?? false);
+ const relaySettings = useSelector((state) => state.settings.relaySettings);
+ const unavailable =
+ 'normal' in relaySettings ? relaySettings.normal.tunnelProtocol === 'openvpn' : true;
+
+ return (
+ <Cell.CellNavigationButton onClick={navigate}>
+ <Cell.Label>{strings.daita}</Cell.Label>
+ <Cell.SubText>
+ {daita && !unavailable ? messages.gettext('On') : messages.gettext('Off')}
+ </Cell.SubText>
+ </Cell.CellNavigationButton>
+ );
+}
+
function VpnSettingsButton() {
const history = useHistory();
const navigate = useCallback(() => history.push(RoutePath.vpnSettings), [history]);
diff --git a/gui/src/renderer/components/WireguardSettings.tsx b/gui/src/renderer/components/WireguardSettings.tsx
index 51817c2029..9a79111ad7 100644
--- a/gui/src/renderer/components/WireguardSettings.tsx
+++ b/gui/src/renderer/components/WireguardSettings.tsx
@@ -95,10 +95,6 @@ export default function WireguardSettings() {
</Cell.Group>
<Cell.Group>
- <DaitaButton />
- </Cell.Group>
-
- <Cell.Group>
<QuantumResistantSetting />
</Cell.Group>
@@ -428,19 +424,6 @@ function MtuSetting() {
);
}
-function DaitaButton() {
- const history = useHistory();
- const navigate = useCallback(() => history.push(RoutePath.daitaSettings), [history]);
- const daita = useSelector((state) => state.settings.wireguard.daita?.enabled ?? false);
-
- return (
- <Cell.CellNavigationButton onClick={navigate}>
- <Cell.Label>{strings.daita}</Cell.Label>
- <Cell.SubText>{daita ? messages.gettext('On') : messages.gettext('Off')}</Cell.SubText>
- </Cell.CellNavigationButton>
- );
-}
-
function QuantumResistantSetting() {
const { setWireguardQuantumResistant } = useAppContext();
const quantumResistant = useSelector((state) => state.settings.wireguard.quantumResistant);
diff --git a/gui/src/renderer/lib/routes.ts b/gui/src/renderer/lib/routes.ts
index 68e8357b6e..89b50c1fb0 100644
--- a/gui/src/renderer/lib/routes.ts
+++ b/gui/src/renderer/lib/routes.ts
@@ -16,7 +16,7 @@ export enum RoutePath {
multihopSettings = '/settings/multihop',
vpnSettings = '/settings/vpn',
wireguardSettings = '/settings/advanced/wireguard',
- daitaSettings = '/settings/advanced/wireguard/daita',
+ daitaSettings = '/settings/daita',
udpOverTcp = '/settings/advanced/wireguard/udp-over-tcp',
shadowsocks = '/settings/advanced/shadowsocks',
openVpnSettings = '/settings/advanced/openvpn',