summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/app.tsx5
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx3
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/constants/links.ts4
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts3
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/version.ts8
5 files changed, 15 insertions, 8 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/app.tsx b/desktop/packages/mullvad-vpn/src/renderer/app.tsx
index b92dbd9179..5f416e7bd4 100644
--- a/desktop/packages/mullvad-vpn/src/renderer/app.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/app.tsx
@@ -9,6 +9,7 @@ import {
ILinuxSplitTunnelingApplication,
ISplitTunnelingApplication,
} from '../shared/application-types';
+import { Link } from '../shared/constants';
import {
AccessMethodSetting,
AccountNumber,
@@ -358,7 +359,7 @@ export default class AppRenderer {
IpcRendererEventChannel.problemReport.collectLogs(toRedact);
public viewLog = (path: string) => IpcRendererEventChannel.problemReport.viewLog(path);
public quit = () => IpcRendererEventChannel.app.quit();
- public openUrl = (url: string) => IpcRendererEventChannel.app.openUrl(url);
+ public openUrl = (url: Link) => IpcRendererEventChannel.app.openUrl(url);
public getPathBaseName = (path: string) => IpcRendererEventChannel.app.getPathBaseName(path);
public showOpenDialog = (options: Electron.OpenDialogOptions) =>
IpcRendererEventChannel.app.showOpenDialog(options);
@@ -462,7 +463,7 @@ export default class AppRenderer {
return devices;
};
- public openLinkWithAuth = async (link: string): Promise<void> => {
+ public openLinkWithAuth = async (link: Link): Promise<void> => {
let token = '';
try {
token = await IpcRendererEventChannel.account.getWwwAuthToken();
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx
index 94216a23d0..d71e53395b 100644
--- a/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx
@@ -1,6 +1,7 @@
import React, { useCallback } from 'react';
import { sprintf } from 'sprintf-js';
+import { Link } from '../../shared/constants';
import { AccountDataError, AccountNumber } from '../../shared/daemon-rpc-types';
import { messages } from '../../shared/gettext';
import { useAppContext } from '../context';
@@ -74,7 +75,7 @@ interface IProps {
accountHistory?: AccountNumber;
loginState: LoginState;
showBlockMessage: boolean;
- openExternalLink: (type: string) => void;
+ openExternalLink: (type: Link) => void;
login: (accountNumber: AccountNumber) => void;
resetLoginError: () => void;
updateAccountNumber: (accountNumber: AccountNumber) => void;
diff --git a/desktop/packages/mullvad-vpn/src/shared/constants/links.ts b/desktop/packages/mullvad-vpn/src/shared/constants/links.ts
index e55adad68c..2d99ebd22c 100644
--- a/desktop/packages/mullvad-vpn/src/shared/constants/links.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/constants/links.ts
@@ -6,3 +6,7 @@ export const links = {
privacyGuide: 'https://mullvad.net/help/first-steps-towards-online-privacy/',
download: 'https://mullvad.net/download/vpn/',
} as const;
+
+type LinkValue = (typeof links)[keyof typeof links];
+type LinkWithSuffix = `${LinkValue}${string}`;
+export type Link = LinkValue | LinkWithSuffix;
diff --git a/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts
index 48561c555b..bff0e9e57c 100644
--- a/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts
@@ -1,8 +1,9 @@
import { LinkProps } from '../../renderer/lib/components';
+import { Link } from '../constants';
export type NotificationAction = {
type: 'open-url';
- url: string;
+ url: Link;
text?: string;
withAuth?: boolean;
};
diff --git a/desktop/packages/mullvad-vpn/src/shared/version.ts b/desktop/packages/mullvad-vpn/src/shared/version.ts
index e8a3bc5b19..338077e6ec 100644
--- a/desktop/packages/mullvad-vpn/src/shared/version.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/version.ts
@@ -1,7 +1,7 @@
-import { links } from './constants';
+import { Link, links } from './constants';
-export function getDownloadUrl(suggestedIsBeta: boolean): string {
- let url = links.download;
+export function getDownloadUrl(suggestedIsBeta: boolean): Link {
+ let url: Link = links.download;
switch (process.platform ?? window.env.platform) {
case 'win32':
url += 'windows/';
@@ -18,5 +18,5 @@ export function getDownloadUrl(suggestedIsBeta: boolean): string {
url += 'beta/';
}
- return url;
+ return url as Link;
}