Explorar o código

Merge pull request #34644 from overleaf/as-link-sharing-analytics

[web] Add sharing link analytics events

GitOrigin-RevId: b206732397065c399d38a8e42dbdebe60222fb24
MoxAmber hai 1 mes
pai
achega
a3036730b4

+ 7 - 1
services/web/frontend/js/features/share-project-modal/components/copy-sharing-link-button.tsx

@@ -5,6 +5,7 @@ import { useProjectContext } from '@/shared/context/project-context'
 import { useUserContext } from '@/shared/context/user-context'
 import { useUserContext } from '@/shared/context/user-context'
 import { debugConsole } from '@/utils/debugging'
 import { debugConsole } from '@/utils/debugging'
 import getMeta from '@/utils/meta'
 import getMeta from '@/utils/meta'
+import { sendMB } from '@/infrastructure/event-tracking'
 
 
 export default function CopySharingLinkButton() {
 export default function CopySharingLinkButton() {
   const { t } = useTranslation()
   const { t } = useTranslation()
@@ -31,7 +32,12 @@ export default function CopySharingLinkButton() {
 
 
     navigator.clipboard
     navigator.clipboard
       .writeText(link)
       .writeText(link)
-      .then(() => setSuccessActionMessage(t('link_copied')))
+      .then(() => {
+        setSuccessActionMessage(t('link_copied'))
+        sendMB('sharing-link-copied', {
+          project_id: projectId,
+        })
+      })
       .catch(debugConsole.error)
       .catch(debugConsole.error)
   }
   }
 
 

+ 12 - 0
services/web/frontend/js/features/share-project-modal/components/project-access.tsx

@@ -30,6 +30,7 @@ import {
 import { ExcludeStrict } from '@ol-types/utils'
 import { ExcludeStrict } from '@ol-types/utils'
 import getMeta from '@/utils/meta'
 import getMeta from '@/utils/meta'
 import { useFeatureFlag } from '@/shared/context/split-test-context'
 import { useFeatureFlag } from '@/shared/context/split-test-context'
+import { sendMB } from '@/infrastructure/event-tracking'
 
 
 type ProjectAccessProps = {
 type ProjectAccessProps = {
   setIsInvitedPeopleScreen: React.Dispatch<React.SetStateAction<boolean>>
   setIsInvitedPeopleScreen: React.Dispatch<React.SetStateAction<boolean>>
@@ -95,6 +96,11 @@ function ProjectAccess({
       setSharingLinkData(data)
       setSharingLinkData(data)
       setProjectAccess(newAccess)
       setProjectAccess(newAccess)
       setSuccessActionMessage(t('access_updated'))
       setSuccessActionMessage(t('access_updated'))
+      sendMB('sharing-link-set-permissions', {
+        project_id: projectId,
+        access_level: newAccess.split('.')[0],
+        ...reqBody,
+      })
     })
     })
   }
   }
 
 
@@ -122,6 +128,12 @@ function ProjectAccess({
     ).then(data => {
     ).then(data => {
       setSharingLinkData(data)
       setSharingLinkData(data)
       setSuccessActionMessage(t('access_updated'))
       setSuccessActionMessage(t('access_updated'))
+      sendMB('sharing-link-set-permissions', {
+        project_id: projectId,
+        access_level: projectAccess?.split('.')[0],
+        privileges: eventKey,
+        subscriptionId: data.subscriptionId,
+      })
     })
     })
   }
   }