summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx19
1 files changed, 17 insertions, 2 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx
index 5c808fe8dc..bc1f028596 100644
--- a/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx
@@ -15,6 +15,8 @@ import {
import { messages } from '../../shared/gettext';
import { getDownloadUrl } from '../../shared/version';
import { useAppContext } from '../context';
+import { usePushAppUpgrade } from '../history/hooks';
+import { useIsPlatformLinux } from '../hooks';
import useActions from '../lib/actionsHook';
import { Button, Flex, Spinner } from '../lib/components';
import { FlexColumn } from '../lib/components/flex-column';
@@ -336,6 +338,7 @@ function OutdatedVersionWarningDialog() {
const isOffline = useSelector((state) => state.connection.isBlocked);
const suggestedIsBeta = useSelector((state) => state.version.suggestedIsBeta ?? false);
const outdatedVersion = useSelector((state) => !!state.version.suggestedUpgrade);
+ const pushAppUpgrade = usePushAppUpgrade();
const [showOutdatedVersionWarning, setShowOutdatedVersionWarning] = useState(outdatedVersion);
@@ -347,6 +350,16 @@ function OutdatedVersionWarningDialog() {
await openUrl(getDownloadUrl(suggestedIsBeta));
}, [openUrl, suggestedIsBeta]);
+ const isLinux = useIsPlatformLinux();
+ const upgradeAction = useCallback(async () => {
+ if (isLinux) {
+ await openDownloadLink();
+ } else {
+ acknowledgeOutdatedVersion();
+ pushAppUpgrade();
+ }
+ }, [isLinux, openDownloadLink, pushAppUpgrade, acknowledgeOutdatedVersion]);
+
const outdatedVersionCancel = useCallback(() => {
acknowledgeOutdatedVersion();
pop();
@@ -357,6 +370,8 @@ function OutdatedVersionWarningDialog() {
'You are using an old version of the app. Please upgrade and see if the problem still exists before sending a report.',
);
+ const disabled = isLinux && isOffline;
+
return (
<ModalAlert
isOpen={showOutdatedVersionWarning}
@@ -366,8 +381,8 @@ function OutdatedVersionWarningDialog() {
<Button
key="upgrade"
variant="success"
- disabled={isOffline}
- onClick={openDownloadLink}
+ disabled={disabled}
+ onClick={upgradeAction}
aria-description={messages.pgettext('accessibility', 'Opens externally')}>
<Button.Text>
{