···11import React from 'react'
22import {Platform} from 'react-native'
33+import {AppState, AppStateStatus} from 'react-native'
44+import {sha256} from 'js-sha256'
35import {
46 Statsig,
57 StatsigProvider,
68 useGate as useStatsigGate,
79} from 'statsig-react-native-expo'
88-import {AppState, AppStateStatus} from 'react-native'
1010+911import {useSession} from '../../state/session'
1010-import {sha256} from 'js-sha256'
1112import {LogEvents} from './events'
12131314export type {LogEvents}
···24252526type FlatJSONRecord = Record<
2627 string,
2727- string | number | boolean | null | undefined
2828+ | string
2929+ | number
3030+ | boolean
3131+ | null
3232+ | undefined
3333+ // Technically not scalar but Statsig will stringify it which works for us:
3434+ | string[]
2835>
29363037let getCurrentRouteName: () => string | null | undefined = () => null
+18-12
src/screens/Onboarding/StepAlgoFeeds/index.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
43import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
5566-import {IS_PROD} from '#/env'
77-import {atoms as a, tokens, useTheme} from '#/alf'
88-import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
99-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1010-import * as Toggle from '#/components/forms/Toggle'
1111-import {Text} from '#/components/Typography'
1212-import {Loader} from '#/components/Loader'
1313-import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle'
146import {useAnalytics} from '#/lib/analytics/analytics'
1515-1616-import {Context} from '#/screens/Onboarding/state'
77+import {logEvent} from '#/lib/statsig/statsig'
178import {
1818- Title,
199 Description,
2010 OnboardingControls,
1111+ Title,
2112} from '#/screens/Onboarding/Layout'
1313+import {Context} from '#/screens/Onboarding/state'
2214import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard'
1515+import {atoms as a, tokens, useTheme} from '#/alf'
1616+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1717+import * as Toggle from '#/components/forms/Toggle'
2318import {IconCircle} from '#/components/IconCircle'
1919+import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
2020+import {ListSparkle_Stroke2_Corner0_Rounded as ListSparkle} from '#/components/icons/ListSparkle'
2121+import {Loader} from '#/components/Loader'
2222+import {Text} from '#/components/Typography'
2323+import {IS_PROD} from '#/env'
24242525export type FeedConfig = {
2626 default: boolean
···8484 setSaving(false)
8585 dispatch({type: 'next'})
8686 track('OnboardingV2:StepAlgoFeeds:End', {
8787+ selectedPrimaryFeeds: primaryFeedUris,
8888+ selectedPrimaryFeedsLength: primaryFeedUris.length,
8989+ selectedSecondaryFeeds: secondaryFeedUris,
9090+ selectedSecondaryFeedsLength: secondaryFeedUris.length,
9191+ })
9292+ logEvent('onboarding:algoFeeds:nextPressed', {
8793 selectedPrimaryFeeds: primaryFeedUris,
8894 selectedPrimaryFeedsLength: primaryFeedUris.length,
8995 selectedSecondaryFeeds: secondaryFeedUris,
+16-15
src/screens/Onboarding/StepFinished.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
43import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
5566+import {useAnalytics} from '#/lib/analytics/analytics'
77+import {logEvent} from '#/lib/statsig/statsig'
68import {logger} from '#/logger'
77-import {atoms as a, useTheme} from '#/alf'
88-import {Button, ButtonText, ButtonIcon} from '#/components/Button'
99-import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2'
1010-import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
1111-import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth'
1212-import {Trending2_Stroke2_Corner2_Rounded as Trending} from '#/components/icons/Trending2'
1313-import {Text} from '#/components/Typography'
1414-import {useOnboardingDispatch} from '#/state/shell'
1515-import {Loader} from '#/components/Loader'
169import {useSetSaveFeedsMutation} from '#/state/queries/preferences'
1710import {getAgent} from '#/state/session'
1818-import {useAnalytics} from '#/lib/analytics/analytics'
1919-2020-import {Context} from '#/screens/Onboarding/state'
1111+import {useOnboardingDispatch} from '#/state/shell'
2112import {
2222- Title,
2313 Description,
2414 OnboardingControls,
1515+ Title,
2516} from '#/screens/Onboarding/Layout'
2626-import {IconCircle} from '#/components/IconCircle'
1717+import {Context} from '#/screens/Onboarding/state'
2718import {
2819 bulkWriteFollows,
2920 sortPrimaryAlgorithmFeeds,
3021} from '#/screens/Onboarding/util'
2222+import {atoms as a, useTheme} from '#/alf'
2323+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2424+import {IconCircle} from '#/components/IconCircle'
2525+import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
2626+import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth'
2727+import {News2_Stroke2_Corner0_Rounded as News} from '#/components/icons/News2'
2828+import {Trending2_Stroke2_Corner2_Rounded as Trending} from '#/components/icons/Trending2'
2929+import {Loader} from '#/components/Loader'
3030+import {Text} from '#/components/Typography'
31313232export function StepFinished() {
3333 const {_} = useLingui()
···7676 onboardDispatch({type: 'finish'})
7777 track('OnboardingV2:StepFinished:End')
7878 track('OnboardingV2:Complete')
7979+ logEvent('onboarding:finished:nextPressed', {})
7980 }, [state, dispatch, onboardDispatch, setSaving, saveFeeds, track])
80818182 React.useEffect(() => {
+16-15
src/screens/Onboarding/StepFollowingFeed.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
43import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
5566-import {atoms as a} from '#/alf'
77-import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
88-import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline'
99-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1010-import {Text} from '#/components/Typography'
1111-import {Divider} from '#/components/Divider'
1212-import * as Toggle from '#/components/forms/Toggle'
136import {useAnalytics} from '#/lib/analytics/analytics'
1414-1515-import {Context} from '#/screens/Onboarding/state'
77+import {logEvent} from '#/lib/statsig/statsig'
88+import {
99+ usePreferencesQuery,
1010+ useSetFeedViewPreferencesMutation,
1111+} from 'state/queries/preferences'
1612import {
1717- Title,
1813 Description,
1914 OnboardingControls,
1515+ Title,
2016} from '#/screens/Onboarding/Layout'
2121-import {
2222- usePreferencesQuery,
2323- useSetFeedViewPreferencesMutation,
2424-} from 'state/queries/preferences'
1717+import {Context} from '#/screens/Onboarding/state'
1818+import {atoms as a} from '#/alf'
1919+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2020+import {Divider} from '#/components/Divider'
2121+import * as Toggle from '#/components/forms/Toggle'
2522import {IconCircle} from '#/components/IconCircle'
2323+import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
2424+import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline'
2525+import {Text} from '#/components/Typography'
26262727export function StepFollowingFeed() {
2828 const {_} = useLingui()
···4646 const onContinue = React.useCallback(() => {
4747 dispatch({type: 'next'})
4848 track('OnboardingV2:StepFollowingFeed:End')
4949+ logEvent('onboarding:followingFeed:nextPressed', {})
4950 }, [track, dispatch])
50515152 React.useEffect(() => {
+19-15
src/screens/Onboarding/StepInterests/index.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
43import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
55import {useQuery} from '@tanstack/react-query'
6677+import {useAnalytics} from '#/lib/analytics/analytics'
88+import {logEvent} from '#/lib/statsig/statsig'
99+import {capitalize} from '#/lib/strings/capitalize'
710import {logger} from '#/logger'
88-import {atoms as a, useBreakpoints, useTheme} from '#/alf'
99-import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
1010-import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag'
1111-import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji'
1212-import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise'
1313-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1414-import {Loader} from '#/components/Loader'
1515-import * as Toggle from '#/components/forms/Toggle'
1611import {getAgent} from '#/state/session'
1717-import {useAnalytics} from '#/lib/analytics/analytics'
1818-import {Text} from '#/components/Typography'
1912import {useOnboardingDispatch} from '#/state/shell'
2020-import {capitalize} from '#/lib/strings/capitalize'
2121-2222-import {Context, ApiResponseMap} from '#/screens/Onboarding/state'
2313import {
2424- Title,
2514 Description,
2615 OnboardingControls,
1616+ Title,
2717} from '#/screens/Onboarding/Layout'
1818+import {ApiResponseMap, Context} from '#/screens/Onboarding/state'
2819import {InterestButton} from '#/screens/Onboarding/StepInterests/InterestButton'
2020+import {atoms as a, useBreakpoints, useTheme} from '#/alf'
2121+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2222+import * as Toggle from '#/components/forms/Toggle'
2923import {IconCircle} from '#/components/IconCircle'
2424+import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as ArrowRotateCounterClockwise} from '#/components/icons/ArrowRotateCounterClockwise'
2525+import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
2626+import {EmojiSad_Stroke2_Corner0_Rounded as EmojiSad} from '#/components/icons/Emoji'
2727+import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag'
2828+import {Loader} from '#/components/Loader'
2929+import {Text} from '#/components/Typography'
30303131export function StepInterests() {
3232 const {_} = useLingui()
···104104 dispatch({type: 'next'})
105105106106 track('OnboardingV2:StepInterests:End', {
107107+ selectedInterests: interests,
108108+ selectedInterestsLength: interests.length,
109109+ })
110110+ logEvent('onboarding:interests:nextPressed', {
107111 selectedInterests: interests,
108112 selectedInterestsLength: interests.length,
109113 })
+13-12
src/screens/Onboarding/StepModeration/index.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
33+import {LABELS} from '@atproto/api'
44import {msg, Trans} from '@lingui/macro'
55-import {LABELS} from '@atproto/api'
55+import {useLingui} from '@lingui/react'
6677-import {atoms as a} from '#/alf'
88-import {usePreferencesSetAdultContentMutation} from 'state/queries/preferences'
99-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1010-import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
1111-import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash'
1212-import {usePreferencesQuery} from '#/state/queries/preferences'
1313-import {Loader} from '#/components/Loader'
147import {useAnalytics} from '#/lib/analytics/analytics'
1515-88+import {logEvent} from '#/lib/statsig/statsig'
99+import {usePreferencesQuery} from '#/state/queries/preferences'
1010+import {usePreferencesSetAdultContentMutation} from 'state/queries/preferences'
1611import {
1712 Description,
1813 OnboardingControls,
1914 Title,
2015} from '#/screens/Onboarding/Layout'
2121-import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption'
1616+import {Context} from '#/screens/Onboarding/state'
2217import {AdultContentEnabledPref} from '#/screens/Onboarding/StepModeration/AdultContentEnabledPref'
2323-import {Context} from '#/screens/Onboarding/state'
1818+import {ModerationOption} from '#/screens/Onboarding/StepModeration/ModerationOption'
1919+import {atoms as a} from '#/alf'
2020+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2421import {IconCircle} from '#/components/IconCircle'
2222+import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
2323+import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash'
2424+import {Loader} from '#/components/Loader'
25252626export function StepModeration() {
2727 const {_} = useLingui()
···4545 const onContinue = React.useCallback(() => {
4646 dispatch({type: 'next'})
4747 track('OnboardingV2:StepModeration:End')
4848+ logEvent('onboarding:moderation:nextPressed', {})
4849 }, [track, dispatch])
49505051 React.useEffect(() => {
···11import React from 'react'
22import {View} from 'react-native'
33import {AppBskyActorDefs} from '@atproto/api'
44-import {useLingui} from '@lingui/react'
54import {msg, Trans} from '@lingui/macro'
55+import {useLingui} from '@lingui/react'
6677-import {atoms as a, useBreakpoints} from '#/alf'
88-import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
99-import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At'
1010-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1111-import {Text} from '#/components/Typography'
1212-import {useProfilesQuery} from '#/state/queries/profile'
1313-import {Loader} from '#/components/Loader'
1414-import * as Toggle from '#/components/forms/Toggle'
1515-import {useModerationOpts} from '#/state/queries/preferences'
167import {useAnalytics} from '#/lib/analytics/analytics'
88+import {logEvent} from '#/lib/statsig/statsig'
179import {capitalize} from '#/lib/strings/capitalize'
1818-1919-import {Context} from '#/screens/Onboarding/state'
1010+import {useModerationOpts} from '#/state/queries/preferences'
1111+import {useProfilesQuery} from '#/state/queries/profile'
2012import {
2121- Title,
2213 Description,
2314 OnboardingControls,
1515+ Title,
2416} from '#/screens/Onboarding/Layout'
1717+import {Context} from '#/screens/Onboarding/state'
2518import {
2619 SuggestedAccountCard,
2720 SuggestedAccountCardPlaceholder,
2821} from '#/screens/Onboarding/StepSuggestedAccounts/SuggestedAccountCard'
2922import {aggregateInterestItems} from '#/screens/Onboarding/util'
2323+import {atoms as a, useBreakpoints} from '#/alf'
2424+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2525+import * as Toggle from '#/components/forms/Toggle'
3026import {IconCircle} from '#/components/IconCircle'
2727+import {At_Stroke2_Corner0_Rounded as At} from '#/components/icons/At'
2828+import {PlusLarge_Stroke2_Corner0_Rounded as Plus} from '#/components/icons/Plus'
2929+import {Loader} from '#/components/Loader'
3030+import {Text} from '#/components/Typography'
31313232export function Inner({
3333 profiles,
···110110 track('OnboardingV2:StepSuggestedAccounts:End', {
111111 selectedAccountsLength: dids.length,
112112 })
113113+ logEvent('onboarding:suggestedAccounts:nextPressed', {
114114+ selectedAccountsLength: dids.length,
115115+ skipped: false,
116116+ })
113117 }, [dids, setSaving, dispatch, track])
114118115119 const handleSkip = React.useCallback(() => {
116120 // if a user comes back and clicks skip, erase follows
117121 dispatch({type: 'setSuggestedAccountsStepResults', accountDids: []})
118122 dispatch({type: 'next'})
123123+ logEvent('onboarding:suggestedAccounts:nextPressed', {
124124+ selectedAccountsLength: 0,
125125+ skipped: true,
126126+ })
119127 }, [dispatch])
120128121129 const isLoading = isProfilesLoading && moderationOpts
+16-12
src/screens/Onboarding/StepTopicalFeeds.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {useLingui} from '@lingui/react'
43import {msg, Trans} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
5566-import {atoms as a} from '#/alf'
77-import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
88-import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass'
99-import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1010-import * as Toggle from '#/components/forms/Toggle'
1111-import {Loader} from '#/components/Loader'
126import {useAnalytics} from '#/lib/analytics/analytics'
77+import {logEvent} from '#/lib/statsig/statsig'
138import {capitalize} from '#/lib/strings/capitalize'
1414-1515-import {Context} from '#/screens/Onboarding/state'
99+import {IS_TEST_USER} from 'lib/constants'
1010+import {useSession} from 'state/session'
1611import {
1717- Title,
1812 Description,
1913 OnboardingControls,
1414+ Title,
2015} from '#/screens/Onboarding/Layout'
1616+import {Context} from '#/screens/Onboarding/state'
2117import {FeedCard} from '#/screens/Onboarding/StepAlgoFeeds/FeedCard'
2218import {aggregateInterestItems} from '#/screens/Onboarding/util'
1919+import {atoms as a} from '#/alf'
2020+import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2121+import * as Toggle from '#/components/forms/Toggle'
2322import {IconCircle} from '#/components/IconCircle'
2424-import {IS_TEST_USER} from 'lib/constants'
2525-import {useSession} from 'state/session'
2323+import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron'
2424+import {ListMagnifyingGlass_Stroke2_Corner0_Rounded as ListMagnifyingGlass} from '#/components/icons/ListMagnifyingGlass'
2525+import {Loader} from '#/components/Loader'
26262727export function StepTopicalFeeds() {
2828 const {_} = useLingui()
···5959 setSaving(false)
6060 dispatch({type: 'next'})
6161 track('OnboardingV2:StepTopicalFeeds:End', {
6262+ selectedFeeds: selectedFeedUris,
6363+ selectedFeedsLength: selectedFeedUris.length,
6464+ })
6565+ logEvent('onboarding:topicalFeeds:nextPressed', {
6266 selectedFeeds: selectedFeedUris,
6367 selectedFeedsLength: selectedFeedUris.length,
6468 })
+4
src/screens/Signup/index.tsx
···5566import {useAnalytics} from '#/lib/analytics/analytics'
77import {FEEDBACK_FORM_URL} from '#/lib/constants'
88+import {logEvent} from '#/lib/statsig/statsig'
89import {createFullHandle} from '#/lib/strings/handles'
910import {useServiceQuery} from '#/state/queries/service'
1011import {getAgent} from '#/state/session'
···99100 }
100101101102 dispatch({type: 'next'})
103103+ logEvent('signup:nextPressed', {
104104+ activeStep: state.activeStep,
105105+ })
102106 }, [
103107 _,
104108 state.activeStep,
+10-8
src/state/session/index.tsx
···11import React from 'react'
22import {
33- BskyAgent,
43 AtpPersistSessionHandler,
54 BSKY_LABELER_DID,
55+ BskyAgent,
66} from '@atproto/api'
77import {useQueryClient} from '@tanstack/react-query'
88import {jwtDecode} from 'jwt-decode'
991010-import {IS_DEV} from '#/env'
1111-import {IS_TEST_USER} from '#/lib/constants'
1212-import {isWeb} from '#/platform/detection'
1010+import {track} from '#/lib/analytics/analytics'
1311import {networkRetry} from '#/lib/async/retry'
1212+import {IS_TEST_USER} from '#/lib/constants'
1313+import {logEvent, LogEvents} from '#/lib/statsig/statsig'
1414+import {hasProp} from '#/lib/type-guards'
1415import {logger} from '#/logger'
1616+import {isWeb} from '#/platform/detection'
1517import * as persisted from '#/state/persisted'
1618import {PUBLIC_BSKY_AGENT} from '#/state/queries'
1717-import {emitSessionDropped} from '../events'
1819import {useLoggedOutViewControls} from '#/state/shell/logged-out'
1920import {useCloseAllActiveElements} from '#/state/util'
2020-import {track} from '#/lib/analytics/analytics'
2121-import {hasProp} from '#/lib/type-guards'
2121+import {IS_DEV} from '#/env'
2222+import {emitSessionDropped} from '../events'
2223import {readLabelers} from './agent-config'
2323-import {logEvent, LogEvents} from '#/lib/statsig/statsig'
24242525let __globalAgent: BskyAgent = PUBLIC_BSKY_AGENT
2626···230230 }: any) => {
231231 logger.info(`session: creating account`)
232232 track('Try Create Account')
233233+ logEvent('account:create:begin', {})
233234234235 const agent = new BskyAgent({service})
235236···290291291292 logger.debug(`session: created account`, {}, logger.DebugContext.session)
292293 track('Create Account')
294294+ logEvent('account:create:success', {})
293295 },
294296 [upsertAccount, queryClient, clearCurrentAccount],
295297 )
+20-15
src/view/com/auth/LoggedOut.tsx
···11import React from 'react'
22-import {View, Pressable} from 'react-native'
22+import {Pressable, View} from 'react-native'
33import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
44+import {msg, Trans} from '@lingui/macro'
45import {useLingui} from '@lingui/react'
55-import {Trans, msg} from '@lingui/macro'
66import {useNavigation} from '@react-navigation/native'
7788-import {isIOS, isNative} from '#/platform/detection'
99-import {Login} from '#/screens/Login'
1010-import {Signup} from '#/screens/Signup'
1111-import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
1212-import {s} from '#/lib/styles'
88+import {useAnalytics} from '#/lib/analytics/analytics'
139import {usePalette} from '#/lib/hooks/usePalette'
1414-import {useAnalytics} from '#/lib/analytics/analytics'
1515-import {SplashScreen} from './SplashScreen'
1616-import {useSetMinimalShellMode} from '#/state/shell/minimal-mode'
1710import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1111+import {logEvent} from '#/lib/statsig/statsig'
1212+import {s} from '#/lib/styles'
1313+import {isIOS, isNative} from '#/platform/detection'
1414+import {useSession} from '#/state/session'
1815import {
1916 useLoggedOutView,
2017 useLoggedOutViewControls,
2118} from '#/state/shell/logged-out'
2222-import {useSession} from '#/state/session'
2323-import {Text} from '#/view/com/util/text/Text'
1919+import {useSetMinimalShellMode} from '#/state/shell/minimal-mode'
2420import {NavigationProp} from 'lib/routes/types'
2121+import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
2222+import {Text} from '#/view/com/util/text/Text'
2323+import {Login} from '#/screens/Login'
2424+import {Signup} from '#/screens/Signup'
2525+import {SplashScreen} from './SplashScreen'
25262627enum ScreenState {
2728 S_LoginOrCreateAccount,
···133134134135 {screenState === ScreenState.S_LoginOrCreateAccount ? (
135136 <SplashScreen
136136- onPressSignin={() => setScreenState(ScreenState.S_Login)}
137137- onPressCreateAccount={() =>
137137+ onPressSignin={() => {
138138+ setScreenState(ScreenState.S_Login)
139139+ logEvent('splash:signInPressed', {})
140140+ }}
141141+ onPressCreateAccount={() => {
138142 setScreenState(ScreenState.S_CreateAccount)
139139- }
143143+ logEvent('splash:createAccountPressed', {})
144144+ }}
140145 />
141146 ) : undefined}
142147 {screenState === ScreenState.S_Login ? (