[Statsig] Include OS and track app state changes (#3273)

* Include platform in identify

* Track back/foregrounding
zio/stable
dan 2024-03-19 20:11:26 +00:00 committed by GitHub
parent e9222a9d97
commit 5bec587717
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 1 deletions

View File

@ -2,6 +2,8 @@ export type LogEvents = {
init: {
initMs: number
}
'state:background': {}
'state:foreground': {}
'feed:endReached': {
feedType: string
itemCount: number

View File

@ -1,9 +1,11 @@
import React from 'react'
import {Platform} from 'react-native'
import {
Statsig,
StatsigProvider,
useGate as useStatsigGate,
} from 'statsig-react-native-expo'
import {AppState, AppStateStatus} from 'react-native'
import {useSession} from '../../state/session'
import {sha256} from 'js-sha256'
import {LogEvents} from './events'
@ -58,9 +60,25 @@ function toStatsigUser(did: string | undefined) {
if (did) {
userID = sha256(did)
}
return {userID}
return {
userID,
platform: Platform.OS,
}
}
let lastState: AppStateStatus = AppState.currentState
AppState.addEventListener('change', (state: AppStateStatus) => {
if (state === lastState) {
return
}
lastState = state
if (state === 'active') {
logEvent('state:foreground', {})
} else {
logEvent('state:background', {})
}
})
export function Provider({children}: {children: React.ReactNode}) {
const {currentAccount} = useSession()
const currentStatsigUser = React.useMemo(