From 7dbe2db2ffa64e19cbf9ebbaf88bcb0bab6488b0 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 21 Jan 2026 17:12:43 -0600 Subject: [PATCH] Migrate remaining tricky spot --- src/screens/Onboarding/StepFindContacts/index.tsx | 5 +++++ src/screens/Onboarding/StepFindContactsIntro/index.tsx | 7 +++++++ src/screens/Onboarding/state.ts | 9 --------- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/screens/Onboarding/StepFindContacts/index.tsx b/src/screens/Onboarding/StepFindContacts/index.tsx index c16d3ac2cd..9f1cac113b 100644 --- a/src/screens/Onboarding/StepFindContacts/index.tsx +++ b/src/screens/Onboarding/StepFindContacts/index.tsx @@ -2,6 +2,7 @@ import {useCallback, useState} from 'react' import {LayoutAnimationConfig} from 'react-native-reanimated' import {SafeAreaView} from 'react-native-safe-area-context' +import {useRunCallbackOnce} from '#/lib/runCallbackOnce' import {FindContactsFlow} from '#/components/contacts/FindContactsFlow' import {type Action, type State} from '#/components/contacts/state' import {ScreenTransition} from '#/components/ScreenTransition' @@ -18,6 +19,10 @@ export function StepFindContacts({ const {dispatch} = useOnboardingInternalState() const ax = useAnalytics() + useRunCallbackOnce(() => { + ax.metric('onboarding:contacts:begin', {}) + }) + const [transitionDirection, setTransitionDirection] = useState< 'Forward' | 'Backward' >('Forward') diff --git a/src/screens/Onboarding/StepFindContactsIntro/index.tsx b/src/screens/Onboarding/StepFindContactsIntro/index.tsx index b0b30d18c5..c5b1728ccf 100644 --- a/src/screens/Onboarding/StepFindContactsIntro/index.tsx +++ b/src/screens/Onboarding/StepFindContactsIntro/index.tsx @@ -5,11 +5,13 @@ import {useLingui} from '@lingui/react' import {useQuery} from '@tanstack/react-query' import {urls} from '#/lib/constants' +import {useRunCallbackOnce} from '#/lib/runCallbackOnce' import {atoms as a} from '#/alf' import {Admonition} from '#/components/Admonition' import {Button, ButtonText} from '#/components/Button' import {ContactsHeroImage} from '#/components/contacts/components/HeroImage' import {InlineLinkText} from '#/components/Link' +import {useAnalytics} from '#/analytics' import { OnboardingControls, OnboardingDescriptionText, @@ -19,9 +21,14 @@ import { import {useOnboardingInternalState} from '../state' export function StepFindContactsIntro() { + const ax = useAnalytics() const {_} = useLingui() const {dispatch} = useOnboardingInternalState() + useRunCallbackOnce(() => { + ax.metric('onboarding:contacts:presented', {}) + }) + const {data: isAvailable, isSuccess} = useQuery({ queryKey: ['contacts-available'], queryFn: async () => await Contacts.isAvailableAsync(), diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts index e0da37d634..9354dd19e2 100644 --- a/src/screens/Onboarding/state.ts +++ b/src/screens/Onboarding/state.ts @@ -172,15 +172,6 @@ export function reducer( } } - if (a.type === 'next') { - if (next.activeStep === 'find-contacts-intro') { - logger.metric('onboarding:contacts:presented', {}) - } - if (next.activeStep === 'find-contacts') { - logger.metric('onboarding:contacts:begin', {}) - } - } - const state = { ...next, hasPrev: next.activeStep !== 'profile',