45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { whoami } from "@follow/store/user/getters"
|
|
import {
|
|
createPostHogBeforeSend,
|
|
setFirebaseTracker,
|
|
setPostHogTracker,
|
|
tracker,
|
|
} from "@follow/tracker"
|
|
import type { AuthUser } from "@follow-app/client-sdk"
|
|
import { getAnalytics } from "@react-native-firebase/analytics"
|
|
import { nativeApplicationVersion, nativeBuildVersion } from "expo-application"
|
|
import PostHog from "posthog-react-native"
|
|
|
|
import { proxyEnv } from "../lib/proxy-env"
|
|
|
|
export const initAnalytics = async () => {
|
|
setFirebaseTracker(getAnalytics())
|
|
|
|
if (proxyEnv.POSTHOG_KEY) {
|
|
setPostHogTracker(
|
|
new PostHog(proxyEnv.POSTHOG_KEY, {
|
|
host: proxyEnv.POSTHOG_HOST,
|
|
before_send: createPostHogBeforeSend(),
|
|
errorTracking: {
|
|
autocapture: {
|
|
uncaughtExceptions: true,
|
|
unhandledRejections: true,
|
|
console: false,
|
|
},
|
|
},
|
|
}),
|
|
)
|
|
}
|
|
|
|
tracker.manager.appendUserProperties({
|
|
build: "rn",
|
|
version: nativeApplicationVersion,
|
|
buildId: nativeBuildVersion,
|
|
})
|
|
|
|
const user = whoami()
|
|
if (user) {
|
|
tracker.identify(user as AuthUser)
|
|
}
|
|
}
|