about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEric Bailey <git@esb.lol>2023-09-20 21:48:03 -0500
committerGitHub <noreply@github.com>2023-09-20 19:48:03 -0700
commite837a499f30f397468f55ea9c75afff1317633d6 (patch)
treeeeb594635379cd628cafb1cc75c32c110fbc467f /src
parent5a945c2024855b89dfb99f81a2c4d226bb39dc32 (diff)
downloadvoidsky-e837a499f30f397468f55ea9c75afff1317633d6.tar.zst
add suggested follows metrics (#1503)
Diffstat (limited to 'src')
-rw-r--r--src/lib/analytics/types.ts3
-rw-r--r--src/view/com/auth/onboarding/RecommendedFollowsItem.tsx3
-rw-r--r--src/view/com/profile/ProfileHeaderSuggestedFollows.tsx15
3 files changed, 18 insertions, 3 deletions
diff --git a/src/lib/analytics/types.ts b/src/lib/analytics/types.ts
index 4fcd3ebd2..d10475908 100644
--- a/src/lib/analytics/types.ts
+++ b/src/lib/analytics/types.ts
@@ -71,6 +71,8 @@ interface TrackPropertiesMap {
   'ProfileHeader:UnblockAccountButtonClicked': {}
   'ProfileHeader:FollowButtonClicked': {}
   'ProfileHeader:UnfollowButtonClicked': {}
+  'ProfileHeader:SuggestedFollowsOpened': {}
+  'ProfileHeader:SuggestedFollowFollowed': {}
   'ViewHeader:MenuButtonClicked': {}
   // SETTINGS events
   'Settings:SwitchAccountButtonClicked': {}
@@ -128,6 +130,7 @@ interface TrackPropertiesMap {
   'Onboarding:Complete': {}
   'Onboarding:Skipped': {}
   'Onboarding:Reset': {}
+  'Onboarding:SuggestedFollowFollowed': {}
 }
 
 interface ScreenPropertiesMap {
diff --git a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx
index 144fdc2e9..51e3bc382 100644
--- a/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx
+++ b/src/view/com/auth/onboarding/RecommendedFollowsItem.tsx
@@ -13,6 +13,7 @@ import {UserAvatar} from 'view/com/util/UserAvatar'
 import {Text} from 'view/com/util/text/Text'
 import Animated, {FadeInRight} from 'react-native-reanimated'
 import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
+import {useAnalytics} from 'lib/analytics/analytics'
 
 type Props = {
   item: SuggestedActor
@@ -54,6 +55,7 @@ export const ProfileCard = observer(function ProfileCardImpl({
   profile: AppBskyActorDefs.ProfileViewBasic
   index: number
 }) {
+  const {track} = useAnalytics()
   const store = useStores()
   const pal = usePalette('default')
   const moderation = moderateProfile(profile, store.preferences.moderationOpts)
@@ -97,6 +99,7 @@ export const ProfileCard = observer(function ProfileCardImpl({
                 index,
               )
               setAddingMoreSuggestions(false)
+              track('Onboarding:SuggestedFollowFollowed')
             }
           }}
         />
diff --git a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx
index 0199c9b39..b9d66a6fe 100644
--- a/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx
+++ b/src/view/com/profile/ProfileHeaderSuggestedFollows.tsx
@@ -25,6 +25,7 @@ import {sanitizeDisplayName} from 'lib/strings/display-names'
 import {sanitizeHandle} from 'lib/strings/handles'
 import {makeProfileLink} from 'lib/routes/links'
 import {Link} from 'view/com/util/Link'
+import {useAnalytics} from 'lib/analytics/analytics'
 
 const OUTER_PADDING = 10
 const INNER_PADDING = 14
@@ -39,6 +40,7 @@ export function ProfileHeaderSuggestedFollows({
   active: boolean
   requestDismiss: () => void
 }) {
+  const {track} = useAnalytics()
   const pal = usePalette('default')
   const store = useStores()
   const animatedHeight = useSharedValue(0)
@@ -49,6 +51,8 @@ export function ProfileHeaderSuggestedFollows({
 
   React.useEffect(() => {
     if (active) {
+      track('ProfileHeader:SuggestedFollowsOpened')
+
       animatedHeight.value = withTiming(TOTAL_HEIGHT, {
         duration: 500,
         easing: Easing.inOut(Easing.exp),
@@ -59,7 +63,7 @@ export function ProfileHeaderSuggestedFollows({
         easing: Easing.inOut(Easing.exp),
       })
     }
-  }, [active, animatedHeight])
+  }, [active, animatedHeight, track])
 
   const {isLoading, data: suggestedFollows} = useQuery({
     enabled: active,
@@ -211,6 +215,7 @@ const SuggestedFollow = observer(function SuggestedFollowImpl({
 }: {
   profile: AppBskyActorDefs.ProfileView
 }) {
+  const {track} = useAnalytics()
   const pal = usePalette('default')
   const store = useStores()
   const {following, toggle} = useFollowDid({did: profile.did})
@@ -218,11 +223,15 @@ const SuggestedFollow = observer(function SuggestedFollowImpl({
 
   const onPress = React.useCallback(async () => {
     try {
-      await toggle()
+      const {following} = await toggle()
+
+      if (following) {
+        track('ProfileHeader:SuggestedFollowFollowed')
+      }
     } catch (e: any) {
       Toast.show('An issue occurred, please try again.')
     }
-  }, [toggle])
+  }, [toggle, track])
 
   return (
     <Link