summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2025-03-28 13:28:03 +0100
committerTobias Järvelöv <tobias.jarvelov@mullvad.net>2025-05-28 10:33:24 +0200
commit465d2030196127142aaba34b38aa25cfa8930905 (patch)
treec32a67c4379a5c287d474c2e883846035d035be5
parent58162c9d100c4c3e07f274d115b18368a3e0bce1 (diff)
downloadmullvadvpn-465d2030196127142aaba34b38aa25cfa8930905.tar.xz
mullvadvpn-465d2030196127142aaba34b38aa25cfa8930905.zip
Add Linux support for update download handling
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/UpdateAvailableListItem.tsx9
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/index.ts3
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useHandleClick.tsx10
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useIsLinux.tsx3
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useOpenDownloadUrl.tsx14
5 files changed, 35 insertions, 4 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/UpdateAvailableListItem.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/UpdateAvailableListItem.tsx
index 698c71f24a..4aa9811457 100644
--- a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/UpdateAvailableListItem.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/UpdateAvailableListItem.tsx
@@ -1,11 +1,11 @@
import styled from 'styled-components';
import { messages } from '../../../../../../shared/gettext';
-import { usePushAppUpgrade } from '../../../../../history/hooks';
import { Flex, Icon } from '../../../../../lib/components';
import { Dot } from '../../../../../lib/components/dot';
import { ListItem } from '../../../../../lib/components/list-item';
import { useConnectionIsBlocked, useVersionSuggestedUpgrade } from '../../../../../redux/hooks';
+import { useHandleClick, useIsLinux } from './hooks';
const StyledText = styled(ListItem.Text)`
margin-top: -4px;
@@ -15,12 +15,13 @@ export function UpdateAvailableListItem() {
const { suggestedUpgrade } = useVersionSuggestedUpgrade();
const { isBlocked } = useConnectionIsBlocked();
- const pushAppUpgrade = usePushAppUpgrade();
+ const isLinux = useIsLinux();
+ const handleClick = useHandleClick();
return (
<ListItem disabled={isBlocked}>
<ListItem.Item>
- <ListItem.Trigger onClick={pushAppUpgrade}>
+ <ListItem.Trigger onClick={handleClick}>
<ListItem.Content>
<Flex $flexDirection="column">
<ListItem.Label>
@@ -33,7 +34,7 @@ export function UpdateAvailableListItem() {
</Flex>
<ListItem.Group>
<Dot variant="warning" size="small" />
- <Icon icon="chevron-right" />
+ <Icon icon={isLinux ? 'external' : 'chevron-right'} />
</ListItem.Group>
</ListItem.Content>
</ListItem.Trigger>
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/index.ts b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/index.ts
new file mode 100644
index 0000000000..153f4085e9
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/index.ts
@@ -0,0 +1,3 @@
+export * from './useOpenDownloadUrl';
+export * from './useIsLinux';
+export * from './useHandleClick';
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useHandleClick.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useHandleClick.tsx
new file mode 100644
index 0000000000..025cc2167e
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useHandleClick.tsx
@@ -0,0 +1,10 @@
+import { usePushAppUpgrade } from '../../../../../../history/hooks';
+import { useIsLinux } from './useIsLinux';
+import { useOpenDownloadUrl } from './useOpenDownloadUrl';
+
+export const useHandleClick = () => {
+ const openDownloadUrl = useOpenDownloadUrl();
+ const pushAppUpgrade = usePushAppUpgrade();
+ const isLinux = useIsLinux();
+ return isLinux ? openDownloadUrl : pushAppUpgrade;
+};
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useIsLinux.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useIsLinux.tsx
new file mode 100644
index 0000000000..06798feb02
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useIsLinux.tsx
@@ -0,0 +1,3 @@
+export const useIsLinux = () => {
+ return window.env.platform === 'linux';
+};
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useOpenDownloadUrl.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useOpenDownloadUrl.tsx
new file mode 100644
index 0000000000..babef27fb6
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-info/components/update-available-list-item/hooks/useOpenDownloadUrl.tsx
@@ -0,0 +1,14 @@
+import React from 'react';
+
+import { getDownloadUrl } from '../../../../../../../shared/version';
+import { useAppContext } from '../../../../../../context';
+import { useVersionSuggestedIsBeta } from '../../../../../../redux/hooks';
+
+export const useOpenDownloadUrl = () => {
+ const { suggestedIsBeta } = useVersionSuggestedIsBeta();
+ const { openUrl } = useAppContext();
+ const openDownloadLink = React.useCallback(async () => {
+ await openUrl(getDownloadUrl(suggestedIsBeta));
+ }, [openUrl, suggestedIsBeta]);
+ return openDownloadLink;
+};