Instrument signup (#8037)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import React from 'react'
|
||||
import {View} from 'react-native'
|
||||
import {useEffect, useReducer, useState} from 'react'
|
||||
import {AppState, type AppStateStatus, View} from 'react-native'
|
||||
import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
|
||||
import {AppBskyGraphStarterpack} from '@atproto/api'
|
||||
import {msg, Trans} from '@lingui/macro'
|
||||
@@ -31,7 +31,7 @@ import * as bsky from '#/types/bsky'
|
||||
export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
const {_} = useLingui()
|
||||
const t = useTheme()
|
||||
const [state, dispatch] = React.useReducer(reducer, initialState)
|
||||
const [state, dispatch] = useReducer(reducer, initialState)
|
||||
const {gtMobile} = useBreakpoints()
|
||||
const submit = useSubmitSignup()
|
||||
|
||||
@@ -44,7 +44,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
uri: activeStarterPack?.uri,
|
||||
})
|
||||
|
||||
const [isFetchedAtMount] = React.useState(starterPack != null)
|
||||
const [isFetchedAtMount] = useState(starterPack != null)
|
||||
const showStarterPackCard =
|
||||
activeStarterPack?.uri && !isFetchingStarterPack && starterPack
|
||||
|
||||
@@ -55,7 +55,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
refetch,
|
||||
} = useServiceQuery(state.serviceUrl)
|
||||
|
||||
React.useEffect(() => {
|
||||
useEffect(() => {
|
||||
if (isFetching) {
|
||||
dispatch({type: 'setIsLoading', value: true})
|
||||
} else if (!isFetching) {
|
||||
@@ -63,7 +63,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
}
|
||||
}, [isFetching])
|
||||
|
||||
React.useEffect(() => {
|
||||
useEffect(() => {
|
||||
if (isError) {
|
||||
dispatch({type: 'setServiceDescription', value: undefined})
|
||||
dispatch({
|
||||
@@ -78,7 +78,7 @@ export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
}
|
||||
}, [_, serviceInfo, isError])
|
||||
|
||||
React.useEffect(() => {
|
||||
useEffect(() => {
|
||||
if (state.pendingSubmit) {
|
||||
if (!state.pendingSubmit.mutableProcessed) {
|
||||
state.pendingSubmit.mutableProcessed = true
|
||||
@@ -87,6 +87,20 @@ export function Signup({onPressBack}: {onPressBack: () => void}) {
|
||||
}
|
||||
}, [state, dispatch, submit])
|
||||
|
||||
// Track app backgrounding during signup
|
||||
useEffect(() => {
|
||||
const subscription = AppState.addEventListener(
|
||||
'change',
|
||||
(nextAppState: AppStateStatus) => {
|
||||
if (nextAppState === 'background') {
|
||||
dispatch({type: 'incrementBackgroundCount'})
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
return () => subscription.remove()
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<SignupContext.Provider value={{state, dispatch}}>
|
||||
<LoggedOutLayout
|
||||
|
||||
Reference in New Issue
Block a user