about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/logger/metrics.ts13
-rw-r--r--src/screens/Profile/Header/ProfileHeaderLabeler.tsx12
-rw-r--r--src/state/queries/preferences/index.ts6
-rw-r--r--src/view/screens/ProfileList.tsx20
4 files changed, 50 insertions, 1 deletions
diff --git a/src/logger/metrics.ts b/src/logger/metrics.ts
index 66f79e4f6..abb7b670f 100644
--- a/src/logger/metrics.ts
+++ b/src/logger/metrics.ts
@@ -306,6 +306,19 @@ export type MetricEvents = {
   'progressGuide:hide': {}
   'progressGuide:followDialog:open': {}
 
+  'moderation:subscribedToLabeler': {}
+  'moderation:unsubscribedFromLabeler': {}
+  'moderation:changeLabelPreference': {
+    preference: string
+  }
+
+  'moderation:subscribedToList': {
+    listType: 'mute' | 'block'
+  }
+  'moderation:unsubscribedFromList': {
+    listType: 'mute' | 'block'
+  }
+
   'reportDialog:open': {
     subjectType: string
   }
diff --git a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
index 94de86228..d355b9987 100644
--- a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
+++ b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx
@@ -134,11 +134,21 @@ let ProfileHeaderLabeler = ({
   const onPressSubscribe = React.useCallback(
     () =>
       requireAuth(async (): Promise<void> => {
+        const subscribe = !isSubscribed
+
         try {
           await toggleSubscription({
             did: profile.did,
-            subscribe: !isSubscribed,
+            subscribe,
           })
+
+          logger.metric(
+            subscribe
+              ? 'moderation:subscribedToLabeler'
+              : 'moderation:unsubscribedFromLabeler',
+            {},
+            {statsig: true},
+          )
         } catch (e: any) {
           reset()
           if (e.message === 'MAX_LABELERS') {
diff --git a/src/state/queries/preferences/index.ts b/src/state/queries/preferences/index.ts
index 3cb121a47..81b3dd086 100644
--- a/src/state/queries/preferences/index.ts
+++ b/src/state/queries/preferences/index.ts
@@ -8,6 +8,7 @@ import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
 import {PROD_DEFAULT_FEED} from '#/lib/constants'
 import {replaceEqualDeep} from '#/lib/functions'
 import {getAge} from '#/lib/strings/time'
+import {logger} from '#/logger'
 import {STALE} from '#/state/queries'
 import {
   DEFAULT_HOME_FEED_PREFS,
@@ -96,6 +97,11 @@ export function usePreferencesSetContentLabelMutation() {
   >({
     mutationFn: async ({label, visibility, labelerDid}) => {
       await agent.setContentLabelPref(label, visibility, labelerDid)
+      logger.metric(
+        'moderation:changeLabelPreference',
+        {preference: visibility},
+        {statsig: true},
+      )
       // triggers a refetch
       await queryClient.invalidateQueries({
         queryKey: preferencesQueryKey,
diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx
index 66a6478fa..acd603126 100644
--- a/src/view/screens/ProfileList.tsx
+++ b/src/view/screens/ProfileList.tsx
@@ -393,6 +393,11 @@ function Header({
     try {
       await listMuteMutation.mutateAsync({uri: list.uri, mute: true})
       Toast.show(_(msg({message: 'List muted', context: 'toast'})))
+      logger.metric(
+        'moderation:subscribedToList',
+        {listType: 'mute'},
+        {statsig: true},
+      )
     } catch {
       Toast.show(
         _(
@@ -406,6 +411,11 @@ function Header({
     try {
       await listMuteMutation.mutateAsync({uri: list.uri, mute: false})
       Toast.show(_(msg({message: 'List unmuted', context: 'toast'})))
+      logger.metric(
+        'moderation:unsubscribedFromList',
+        {listType: 'mute'},
+        {statsig: true},
+      )
     } catch {
       Toast.show(
         _(
@@ -419,6 +429,11 @@ function Header({
     try {
       await listBlockMutation.mutateAsync({uri: list.uri, block: true})
       Toast.show(_(msg({message: 'List blocked', context: 'toast'})))
+      logger.metric(
+        'moderation:subscribedToList',
+        {listType: 'block'},
+        {statsig: true},
+      )
     } catch {
       Toast.show(
         _(
@@ -432,6 +447,11 @@ function Header({
     try {
       await listBlockMutation.mutateAsync({uri: list.uri, block: false})
       Toast.show(_(msg({message: 'List unblocked', context: 'toast'})))
+      logger.metric(
+        'moderation:unsubscribedFromList',
+        {listType: 'block'},
+        {statsig: true},
+      )
     } catch {
       Toast.show(
         _(