diff options
| author | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-10-20 10:59:49 +0200 |
|---|---|---|
| committer | Joakim Hulthe <joakim.hulthe@mullvad.net> | 2025-10-23 10:22:54 +0200 |
| commit | cba742c24849473bcb8f0cd56c4c932ca49799e9 (patch) | |
| tree | 2fecab8bbdb9c955d5f8584e31775958c90f9c6f | |
| parent | 3664a46719bc019ad69f9826a3aded66240951c3 (diff) | |
| download | mullvadvpn-cba742c24849473bcb8f0cd56c4c932ca49799e9.tar.xz mullvadvpn-cba742c24849473bcb8f0cd56c4c932ca49799e9.zip | |
Make upgrade details conditionally render based on if an upgrade exists
Render NoUpdateAvailable if the app upgrade does not exist
2 files changed, 52 insertions, 50 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/AppUpgradeView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/AppUpgradeView.tsx index 5d56347a50..f22ff484dd 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/AppUpgradeView.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/AppUpgradeView.tsx @@ -1,9 +1,16 @@ import styled from 'styled-components'; +import { messages } from '../../../../shared/gettext'; import { useHistory } from '../../../lib/history'; +import { AppNavigationHeader } from '../../app-navigation-header'; import { BackAction } from '../../KeyboardNavigation'; +import { SettingsContainer } from '../../Layout'; import { Layout } from '../../Layout'; +import { NavigationContainer } from '../../NavigationContainer'; +import { NavigationScrollbars } from '../../NavigationScrollbars'; import { Footer, UpgradeDetails } from './components'; +import { NoUpgradeAvailable } from './components/no-upgrade-available'; +import { useHasUpgrade } from './hooks'; const StyledFooter = styled.div` // TODO: Use color from Colors @@ -15,11 +22,24 @@ const StyledFooter = styled.div` export const AppUpgradeView = () => { const { pop } = useHistory(); + const hasUpgrade = useHasUpgrade(); return ( <BackAction action={pop}> <Layout> - <UpgradeDetails /> + <SettingsContainer> + <NavigationContainer> + <AppNavigationHeader + title={ + // TRANSLATORS: Title in navigation bar + messages.pgettext('app-upgrade-view', 'Update available') + } + /> + <NavigationScrollbars> + {hasUpgrade ? <UpgradeDetails /> : <NoUpgradeAvailable />} + </NavigationScrollbars> + </NavigationContainer> + </SettingsContainer> <StyledFooter> <Footer /> </StyledFooter> diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/components/upgrade-details/UpgradeDetails.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/components/upgrade-details/UpgradeDetails.tsx index 4d227496de..1e6bc2b7d4 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/components/upgrade-details/UpgradeDetails.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/views/app-upgrade/components/upgrade-details/UpgradeDetails.tsx @@ -3,12 +3,9 @@ import { sprintf } from 'sprintf-js'; import { messages } from '../../../../../../shared/gettext'; import { Container, Flex, TitleBig, TitleLarge } from '../../../../../lib/components'; import { formatHtml } from '../../../../../lib/html-formatter'; -import { AppNavigationHeader } from '../../../../app-navigation-header'; import { ChangelogList } from '../../../../changelog-list'; -import { SettingsContainer } from '../../../../Layout'; -import { NavigationContainer } from '../../../../NavigationContainer'; -import { NavigationScrollbars } from '../../../../NavigationScrollbars'; import { HeaderSubTitle } from '../../../../SettingsHeader'; +import { AppUpgradeHeader } from '../app-upgrade-header'; import { NoChangelogUpdates } from './components'; import { useCacheDir, useChangelog, useShowChangelogList, useTitle } from './hooks'; @@ -19,52 +16,37 @@ export function UpgradeDetails() { const cacheDir = useCacheDir(); return ( - <SettingsContainer> - <NavigationContainer> - <AppNavigationHeader - title={ - // TRANSLATORS: Title in navigation bar + <Flex $flexDirection="column" $gap="large" $padding={{ bottom: 'medium' }}> + <AppUpgradeHeader> + <TitleBig as="h2"> + { + // TRANSLATORS: Main title for the update available view messages.pgettext('app-upgrade-view', 'Update available') } - /> - <NavigationScrollbars> - <Flex $flexDirection="column" $gap="large" $padding={{ bottom: 'medium' }}> - <Container size="4" $flexDirection="column" $gap="small"> - <TitleBig as="h2"> - { - // TRANSLATORS: Main title for the update available view - messages.pgettext('app-upgrade-view', 'Update available') - } - </TitleBig> - {cacheDir !== undefined && ( - <HeaderSubTitle> - {formatHtml( - sprintf( - messages.pgettext( - 'app-upgrade-view', - 'Installer will be downloaded to <b>%(cacheDir)s</b>.', - ), - { cacheDir }, - ), - )} - </HeaderSubTitle> - )} - </Container> - <Flex $flexDirection="column" $gap="small"> - <Container size="4"> - <TitleLarge as="h2">{title}</TitleLarge> - </Container> - <Container size="3" $flexDirection="column"> - {showChangelogList ? ( - <ChangelogList changelog={changelog} /> - ) : ( - <NoChangelogUpdates /> - )} - </Container> - </Flex> - </Flex> - </NavigationScrollbars> - </NavigationContainer> - </SettingsContainer> + </TitleBig> + {cacheDir !== undefined && ( + <HeaderSubTitle> + {formatHtml( + sprintf( + // TRANSLATORS: Info about which directory the app update will be downloaded to + messages.pgettext( + 'app-upgrade-view', + 'Installer will be downloaded to <b>%(cacheDir)s</b>.', + ), + { cacheDir }, + ), + )} + </HeaderSubTitle> + )} + </AppUpgradeHeader> + <Flex $flexDirection="column" $gap="small"> + <Container size="4"> + <TitleLarge as="h2">{title}</TitleLarge> + </Container> + <Container size="3" $flexDirection="column"> + {showChangelogList ? <ChangelogList changelog={changelog} /> : <NoChangelogUpdates />} + </Container> + </Flex> + </Flex> ); } |
