Skip to content

Commit 839852a

Browse files
committed
fix: lwm walletv4tour post onboarding
1 parent 064c941 commit 839852a

File tree

6 files changed

+29
-7
lines changed

6 files changed

+29
-7
lines changed

.changeset/lemon-parrots-reply.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"live-mobile": minor
3+
---
4+
5+
fix: lwm walletv4tour post onboarding

apps/ledger-live-mobile/src/mvvm/features/WalletV4Tour/Drawer/__integrations__/walletV4TourDrawer.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ describe("WalletV4TourDrawer integration", () => {
5555
...state,
5656
settings: {
5757
...state.settings,
58-
hasCompletedOnboarding: true,
5958
hasSeenWalletV4Tour: hasSeenTour,
6059
},
6160
}),

apps/ledger-live-mobile/src/mvvm/features/WalletV4Tour/Drawer/hooks/useWalletV4TourDrawerViewModel.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { useState, useCallback, useMemo, useRef } from "react";
22
import { useDispatch, useSelector } from "~/context/hooks";
33
import { useFeature } from "@ledgerhq/live-common/featureFlags/index";
44
import { setHasSeenWalletV4Tour } from "~/actions/settings";
5-
import { hasCompletedOnboardingSelector, hasSeenWalletV4TourSelector } from "~/reducers/settings";
5+
import { hasSeenWalletV4TourSelector } from "~/reducers/settings";
66
import type { WalletV4TourDrawerViewModel } from "../types";
77
import { useTranslation } from "~/context/Locale";
88
import animation01 from "../animations/01.lottie";
@@ -15,19 +15,16 @@ export const useWalletV4TourDrawerViewModel = (): WalletV4TourDrawerViewModel =>
1515
const dispatch = useDispatch();
1616
const currentIndexRef = useRef(0);
1717
const hasSeenTour = useSelector(hasSeenWalletV4TourSelector);
18-
const hasCompletedOnboarding = useSelector(hasCompletedOnboardingSelector);
1918
const lwmWallet40 = useFeature("lwmWallet40");
2019
const isTourEnabled = (lwmWallet40?.enabled && lwmWallet40?.params?.tour) ?? false;
2120

2221
const [isDrawerOpen, setIsDrawerOpen] = useState(isTourEnabled && !hasSeenTour);
2322

2423
const handleOpenDrawer = useCallback(() => {
25-
if (!hasCompletedOnboarding) {
26-
dispatch(setHasSeenWalletV4Tour(true));
27-
} else if (!hasSeenTour) {
24+
if (!hasSeenTour) {
2825
setIsDrawerOpen(true);
2926
}
30-
}, [hasCompletedOnboarding, hasSeenTour, dispatch]);
27+
}, [hasSeenTour]);
3128

3229
const handleCloseDrawer = useCallback(() => {
3330
setIsDrawerOpen(false);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { useEffect } from "react";
2+
import { useDispatch } from "~/context/hooks";
3+
import { setHasSeenWalletV4Tour } from "~/actions/settings";
4+
5+
/**
6+
* Call on the first screen of the onboarding flow (Welcome).
7+
* Marks the Wallet V4 tour as "seen" so the tour drawer does not open after onboarding.
8+
*/
9+
export function useMarkWalletV4TourSeenAtOnboardingStart(): void {
10+
const dispatch = useDispatch();
11+
12+
useEffect(() => {
13+
dispatch(setHasSeenWalletV4Tour(true));
14+
}, [dispatch]);
15+
}

apps/ledger-live-mobile/src/mvvm/features/WelcomePage/index.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@ import { StoryProgressBar } from "./components/StoryProgressBar";
1111
import { TappableMask } from "./components/TappableMask";
1212
import { useWelcomeNavigation } from "./hooks/useWelcomeNavigation";
1313
import { useWelcomeStories } from "./hooks/useWelcomeStories";
14+
import { useMarkWalletV4TourSeenAtOnboardingStart } from "LLM/features/WalletV4Tour/hooks/useMarkWalletV4TourSeenAtOnboardingStart";
1415
import SafeAreaView from "~/components/SafeAreaView";
1516

1617
export default function WelcomePage() {
1718
const { colors } = useTheme();
1819
const isAppActive = !useIsAppInBackground();
1920
const isFocused = useIsFocused();
2021

22+
useMarkWalletV4TourSeenAtOnboardingStart();
23+
2124
const { welcomeVideos, currentVideoIndex, videoDurations, onLoad, onPrevious, onNext } =
2225
useWelcomeStories();
2326
const { onLogoTouchStart, onLogoTouchEnd } = useWelcomeNavigation();

apps/ledger-live-mobile/src/screens/Onboarding/steps/welcome.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import ForceTheme from "~/components/theme/ForceTheme";
1818
import Button from "~/components/wrappedUi/Button";
1919
import { OnboardingNavigatorParamList } from "~/components/RootNavigator/types/OnboardingNavigator";
2020
import { BaseComposite, StackNavigatorProps } from "~/components/RootNavigator/types/helpers";
21+
import { useMarkWalletV4TourSeenAtOnboardingStart } from "LLM/features/WalletV4Tour/hooks/useMarkWalletV4TourSeenAtOnboardingStart";
2122

2223
import videoSources from "../../../../assets/videos";
2324
import LanguageSelect from "../../SyncOnboarding/LanguageSelect";
@@ -44,6 +45,8 @@ function OnboardingStepWelcome({ navigation }: NavigationProps) {
4445
const acceptTerms = useAcceptGeneralTerms();
4546
const llmAnalyticsOptInPromptFeature = useFeature("llmAnalyticsOptInPrompt");
4647

48+
useMarkWalletV4TourSeenAtOnboardingStart();
49+
4750
const {
4851
i18n: { language: locale },
4952
} = useTranslation();

0 commit comments

Comments
 (0)