diff options
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx | 19 |
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> { |
