Skip to content

Commit 9e739c0

Browse files
fix: User proper state to handle notification-banner vs tooltip
1 parent 47e50e7 commit 9e739c0

File tree

5 files changed

+29
-34
lines changed

5 files changed

+29
-34
lines changed

Diff for: packages/suite/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@trezor/suite",
3-
"suiteVersion": "0.0.0",
3+
"suiteVersion": "24.11.0",
44
"version": "1.0.0",
55
"private": true,
66
"scripts": {

Diff for: packages/suite/src/components/suite/layouts/SuiteLayout/Sidebar/QuickActions/QuickActions.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@ const ActionsContainer = styled.div`
2020
}
2121
`;
2222

23-
export const QuickActions = () => (
23+
type QuickActionsProps = {
24+
showUpdateBannerNotification: boolean;
25+
};
26+
27+
export const QuickActions = ({ showUpdateBannerNotification }: QuickActionsProps) => (
2428
<ActionsContainer>
25-
<UpdateStatusActionBarIcon />
29+
<UpdateStatusActionBarIcon showUpdateBannerNotification={showUpdateBannerNotification} />
2630
<DebugAndExperimental />
2731
<CustomBackend />
2832
<Tor />

Diff for: packages/suite/src/components/suite/layouts/SuiteLayout/Sidebar/QuickActions/Update/UpdateStatusActionBarIcon.tsx

+9-4
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,16 @@ const SuiteUpdateIcon = ({ iconSize, updateStatus, variant }: SuiteUpdateIconPro
139139
);
140140
};
141141

142-
export const UpdateStatusActionBarIcon = () => {
142+
type UpdateStatusActionBarIconProps = {
143+
showUpdateBannerNotification: boolean;
144+
};
145+
146+
export const UpdateStatusActionBarIcon = ({
147+
showUpdateBannerNotification,
148+
}: UpdateStatusActionBarIconProps) => {
143149
const theme = useTheme();
144150

145-
const { updateStatus, updateStatusDevice, updateStatusSuite, showBannerNotification } =
146-
useUpdateStatus();
151+
const { updateStatus, updateStatusDevice, updateStatusSuite } = useUpdateStatus();
147152

148153
const { device } = useDevice();
149154
const dispatch = useDispatch();
@@ -173,7 +178,7 @@ export const UpdateStatusActionBarIcon = () => {
173178
<div>
174179
<QuickActionButton
175180
tooltip={
176-
!showBannerNotification && (
181+
!showUpdateBannerNotification && (
177182
<UpdateTooltip
178183
updateStatusDevice={updateStatusDevice}
179184
updateStatusSuite={updateStatusSuite}

Diff for: packages/suite/src/components/suite/layouts/SuiteLayout/Sidebar/QuickActions/Update/useUpdateStatus.ts

-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { useState } from 'react';
2-
31
import { useDevice, useSelector } from '../../../../../../../hooks/suite';
42
import {
53
DesktopUpdateState,
@@ -11,10 +9,6 @@ type UpdateStatusData = {
119
updateStatus: UpdateStatus;
1210
updateStatusDevice: UpdateStatusDevice;
1311
updateStatusSuite: UpdateStatusSuite;
14-
15-
showBannerNotification: boolean;
16-
setClosedNotificationSuite: (value: boolean) => void;
17-
setClosedNotificationDevice: (value: boolean) => void;
1812
};
1913

2014
type GetSuiteUpdateStatusArgs = {
@@ -50,9 +44,6 @@ const getSuiteUpdateStatus = ({ desktopUpdate }: GetSuiteUpdateStatusArgs): Upda
5044
};
5145

5246
export const useUpdateStatus = (): UpdateStatusData => {
53-
const [closedNotificationDevice, setClosedNotificationDevice] = useState(false);
54-
const [closedNotificationSuite, setClosedNotificationSuite] = useState(false);
55-
5647
const { device } = useDevice();
5748
const { desktopUpdate } = useSelector(state => state);
5849

@@ -70,16 +61,9 @@ export const useUpdateStatus = (): UpdateStatusData => {
7061
const updateStatusDevice =
7162
isFirmwareOutdated && !isSuiteUpdateInProgress ? 'update-available' : 'up-to-date';
7263

73-
const showBannerNotification =
74-
(updateStatusSuite !== 'up-to-date' && !closedNotificationSuite) ||
75-
(updateStatusDevice !== 'up-to-date' && !closedNotificationDevice);
76-
7764
const common: Omit<UpdateStatusData, 'updateStatus'> = {
7865
updateStatusDevice,
7966
updateStatusSuite,
80-
showBannerNotification,
81-
setClosedNotificationDevice,
82-
setClosedNotificationSuite,
8367
};
8468

8569
if (

Diff for: packages/suite/src/components/suite/layouts/SuiteLayout/Sidebar/Sidebar.tsx

+13-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { useState } from 'react';
22
import styled from 'styled-components';
33
import { DeviceSelector } from '../DeviceSelector/DeviceSelector';
44
import { Navigation } from './Navigation';
@@ -31,15 +31,11 @@ const Content = styled.div`
3131
`;
3232

3333
export const Sidebar = () => {
34-
const { elevation } = useElevation();
34+
const [closedNotificationDevice, setClosedNotificationDevice] = useState(false);
35+
const [closedNotificationSuite, setClosedNotificationSuite] = useState(false);
3536

36-
const {
37-
updateStatusDevice,
38-
updateStatusSuite,
39-
showBannerNotification,
40-
setClosedNotificationDevice,
41-
setClosedNotificationSuite,
42-
} = useUpdateStatus();
37+
const { elevation } = useElevation();
38+
const { updateStatusDevice, updateStatusSuite } = useUpdateStatus();
4339

4440
const sidebarWidth = useSelector(state => state.suite.settings.sidebarWidth);
4541
const { setSidebarWidth } = useActions({
@@ -55,6 +51,10 @@ export const Sidebar = () => {
5551
}
5652
};
5753

54+
const showUpdateBannerNotification =
55+
(updateStatusSuite !== 'up-to-date' && !closedNotificationSuite) ||
56+
(updateStatusDevice !== 'up-to-date' && !closedNotificationDevice);
57+
5858
return (
5959
<Wrapper>
6060
<ResizableBox
@@ -74,15 +74,17 @@ export const Sidebar = () => {
7474
<Navigation />
7575
<AccountsMenu />
7676

77-
{showBannerNotification && (
77+
{showUpdateBannerNotification && (
7878
<UpdateNotificationBanner
7979
updateStatusDevice={updateStatusDevice}
8080
updateStatusSuite={updateStatusSuite}
8181
onClose={onNotificationBannerClosed}
8282
/>
8383
)}
8484

85-
<QuickActions />
85+
<QuickActions
86+
showUpdateBannerNotification={showUpdateBannerNotification}
87+
/>
8688
</Content>
8789
</TrafficLightOffset>
8890
</ElevationUp>

0 commit comments

Comments
 (0)