diff options
| author | Oliver <oliver@mohlin.dev> | 2025-04-16 08:27:42 +0200 |
|---|---|---|
| committer | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2025-05-28 13:25:30 +0200 |
| commit | 7e116c128fe9ed156509b26c8c3b8407a4335dcd (patch) | |
| tree | 6b1669f7f8d61bfd23ba9708f64e18109dfaa17b | |
| parent | 6c3629478bc3bb420c122bcf6c651b5455c8ab5d (diff) | |
| download | mullvadvpn-7e116c128fe9ed156509b26c8c3b8407a4335dcd.tar.xz mullvadvpn-7e116c128fe9ed156509b26c8c3b8407a4335dcd.zip | |
Add upgrade indicator to main menu setting button
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/components/app-main-header/components/AppMainHeaderSettingsButton.tsx | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/app-main-header/components/AppMainHeaderSettingsButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/app-main-header/components/AppMainHeaderSettingsButton.tsx index 755350f18d..a174d58797 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/app-main-header/components/AppMainHeaderSettingsButton.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/app-main-header/components/AppMainHeaderSettingsButton.tsx @@ -1,14 +1,28 @@ import { useCallback } from 'react'; +import styled from 'styled-components'; import { messages } from '../../../../shared/gettext'; import { IconButton, IconButtonProps, MainHeader } from '../../../lib/components'; +import { Dot } from '../../../lib/components/dot'; import { TransitionType, useHistory } from '../../../lib/history'; import { RoutePath } from '../../../lib/routes'; +import { useSelector } from '../../../redux/store'; export type MainHeaderSettingsButtonProps = Omit<IconButtonProps, 'icon'>; +const StyledDot = styled(Dot)` + position: absolute; + top: 0; + right: 0; +`; + +const StyledDiv = styled.div` + position: relative; +`; + export function AppMainHeaderSettingsButton(props: MainHeaderSettingsButtonProps) { const history = useHistory(); + const suggestedUpgrade = useSelector((state) => state.version.suggestedUpgrade); const openSettings = useCallback(() => { if (!props.disabled) { @@ -18,7 +32,14 @@ export function AppMainHeaderSettingsButton(props: MainHeaderSettingsButtonProps return ( <MainHeader.IconButton onClick={openSettings} aria-label={messages.gettext('Settings')}> - <IconButton.Icon icon="settings-filled" />{' '} + {suggestedUpgrade ? ( + <StyledDiv> + <IconButton.Icon icon="settings-partial" /> + <StyledDot variant="warning" size="tiny" /> + </StyledDiv> + ) : ( + <IconButton.Icon icon="settings-filled" /> + )} </MainHeader.IconButton> ); } |
