summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOliver <oliver@mohlin.dev>2025-04-16 08:27:42 +0200
committerSebastian Holmin <sebastian.holmin@mullvad.net>2025-05-28 13:25:30 +0200
commit7e116c128fe9ed156509b26c8c3b8407a4335dcd (patch)
tree6b1669f7f8d61bfd23ba9708f64e18109dfaa17b
parent6c3629478bc3bb420c122bcf6c651b5455c8ab5d (diff)
downloadmullvadvpn-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.tsx23
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>
);
}