Skip to content

Commit 558d638

Browse files
authored
feat(staking): [LW-8879] persistence banner fix, minor banners refactor (#702)
persistence banner fix, minor banners refactor
1 parent 868d2df commit 558d638

File tree

19 files changed

+119
-56
lines changed

19 files changed

+119
-56
lines changed

apps/browser-extension-wallet/src/features/delegation/components/MultiDelegationStakingPopup.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,10 @@ export const MultiDelegationStakingPopup = (): JSX.Element => {
9999
multidelegationFirstVisit,
100100
triggerMultidelegationFirstVisit: () => setMultidelegationFirstVisit(false),
101101
multidelegationFirstVisitSincePortfolioPersistence,
102-
triggerMultidelegationFirstVisitSincePortfolioPersistence: () =>
103-
setMultidelegationFirstVisitSincePortfolioPersistence(false),
102+
triggerMultidelegationFirstVisitSincePortfolioPersistence: () => {
103+
setMultidelegationFirstVisit(false);
104+
setMultidelegationFirstVisitSincePortfolioPersistence(false);
105+
},
104106
backgroundServiceAPIContextSetWalletPassword: setWalletPassword,
105107
expandStakingView: () => handleOpenBrowser({ section: BrowserViewSections.STAKING }),
106108
balancesBalance: balance,

apps/browser-extension-wallet/src/hooks/__tests__/useWalletManager.test.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,15 @@ describe('Testing useWalletManager hook', () => {
758758
await deleteWallet();
759759
expect(shutdownWalletMocked).toBeCalledWith(walletManagerUi);
760760
expect(clearLocalStorage).toBeCalledWith({
761-
except: ['currency', 'lock', 'mode', 'hideBalance', 'isForgotPasswordFlow', 'multidelegationFirstVisit']
761+
except: [
762+
'currency',
763+
'lock',
764+
'mode',
765+
'hideBalance',
766+
'isForgotPasswordFlow',
767+
'multidelegationFirstVisit',
768+
'multidelegationFirstVisitSincePortfolioPersistence'
769+
]
762770
});
763771
expect(clearBackgroundStorage).toBeCalledWith({
764772
except: ['fiatPrices', 'userId', 'usePersistentUserId', 'experimentsConfiguration']

apps/browser-extension-wallet/src/hooks/useWalletManager.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,8 @@ export const useWalletManager = (): UseWalletManager => {
316316
'mode',
317317
'hideBalance',
318318
'isForgotPasswordFlow',
319-
'multidelegationFirstVisit'
319+
'multidelegationFirstVisit',
320+
'multidelegationFirstVisitSincePortfolioPersistence'
320321
];
321322

322323
setCurrentChain(CHAIN);

apps/browser-extension-wallet/src/views/browser-view/features/staking/components/MultiDelegationStaking.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,10 @@ export const MultiDelegationStaking = (): JSX.Element => {
111111
multidelegationFirstVisit,
112112
triggerMultidelegationFirstVisit: () => setMultidelegationFirstVisit(false),
113113
multidelegationFirstVisitSincePortfolioPersistence,
114-
triggerMultidelegationFirstVisitSincePortfolioPersistence: () =>
115-
setMultidelegationFirstVisitSincePortfolioPersistence(false),
114+
triggerMultidelegationFirstVisitSincePortfolioPersistence: () => {
115+
setMultidelegationFirstVisit(false);
116+
setMultidelegationFirstVisitSincePortfolioPersistence(false);
117+
},
116118
walletAddress,
117119
currentChain
118120
}}

packages/e2e-tests/src/fixture/localStorageInitializer.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ class LocalStorageInitializer {
6464
disableShowingMultidelegationBetaBanner = async () => {
6565
await localStorageManager.setItem('multidelegationFirstVisit', 'false');
6666
};
67+
68+
disableShowingMultidelegationPersistenceBanner = async () => {
69+
await localStorageManager.setItem('multidelegationFirstVisitSincePortfolioPersistence', 'false');
70+
};
6771
}
6872

6973
export default new LocalStorageInitializer();

packages/e2e-tests/src/steps/commonSteps.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ Given(/^I disable showing Multidelegation beta banner$/, async () => {
262262
await localStorageInitializer.disableShowingMultidelegationBetaBanner();
263263
});
264264

265+
Given(/^I disable showing Multidelegation persistence banner$/, async () => {
266+
await localStorageInitializer.disableShowingMultidelegationPersistenceBanner();
267+
});
268+
265269
Then(/^Clipboard contains address of wallet: "([^"]*)"$/, async (walletName: string) => {
266270
await commonAssert.assertClipboardContainsAddressOfWallet(walletName);
267271
});

packages/e2e-tests/src/steps/multidelegationSteps.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ Given(/^I am on Start Staking page in (extended|popup) mode$/, async (mode: 'ext
293293
await TokensPageObject.waitUntilCardanoTokenLoaded();
294294
await TokensPageObject.saveTokenBalance('Cardano');
295295
await localStorageInitializer.disableShowingMultidelegationBetaBanner();
296+
await localStorageInitializer.disableShowingMultidelegationPersistenceBanner();
296297
await mainMenuPageObject.navigateToSection('Staking', mode);
297298
const cardanoBalance = String(await TokensPageObject.loadTokenBalance('Cardano'));
298299
await StartStakingPageAssert.assertSeeStartStakingPage(cardanoBalance, mode);

packages/staking/src/features/Drawer/Drawer.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { PostHogAction, useObservable } from '@lace/common';
33
import React, { useMemo } from 'react';
44
import { useTranslation } from 'react-i18next';
55
import { useOutsideHandles } from '../outside-handles-provider';
6-
import { isPortfolioDrifted } from '../portfolio-drift';
76
import {
87
DelegationFlow,
98
DelegationPortfolioStore,
@@ -12,6 +11,7 @@ import {
1211
DrawerStep,
1312
MAX_POOLS_COUNT,
1413
PERCENTAGE_SCALE_MAX,
14+
isPortfolioDrifted,
1515
sumPercentagesSanitized,
1616
useDelegationPortfolioStore,
1717
} from '../store';

packages/staking/src/features/portfolio-drift/PortfolioDriftBanner.css.ts renamed to packages/staking/src/features/overview/StakingNotificationBanners/PortfolioDriftBanner.css.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { style } from '@vanilla-extract/css';
2-
import { theme } from '../theme';
2+
import { theme } from '../../theme';
33

44
export const bannerBellIcon = style({
55
color: theme.colors.$bannerBellIconColor,

packages/staking/src/features/portfolio-drift/PortfolioDriftBanner.tsx renamed to packages/staking/src/features/overview/StakingNotificationBanners/PortfolioDriftBanner.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { Banner } from '@lace/common';
22
import { VFC } from 'react';
33
import { useTranslation } from 'react-i18next';
4-
import BellIcon from '../../assets/icons/bell-icon.svg';
5-
import { useOutsideHandles } from '../outside-handles-provider';
6-
import { useDelegationPortfolioStore } from '../store';
4+
import BellIcon from '../../../assets/icons/bell-icon.svg';
5+
import { useOutsideHandles } from '../../outside-handles-provider';
6+
import { useDelegationPortfolioStore } from '../../store';
77
import * as styles from './PortfolioDriftBanner.css';
88

99
type PortfolioDriftBannerProps = {

0 commit comments

Comments
 (0)