From 3eee4a41030008f701e120792b22fc44fbd62a6a Mon Sep 17 00:00:00 2001 From: Ian Philips Date: Thu, 7 Jul 2022 15:06:29 -0600 Subject: [PATCH] Track notification clicks --- web/pages/notifications.tsx | 50 ++++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/web/pages/notifications.tsx b/web/pages/notifications.tsx index 3f9b4eed..aa2cdc51 100644 --- a/web/pages/notifications.tsx +++ b/web/pages/notifications.tsx @@ -34,6 +34,7 @@ import { groupPath } from 'web/lib/firebase/groups' import { UNIQUE_BETTOR_BONUS_AMOUNT } from 'common/numeric-constants' import { groupBy, sum, uniq } from 'lodash' import Custom404 from 'web/pages/404' +import { track } from '@amplitude/analytics-browser' export const NOTIFICATIONS_PER_PAGE = 30 const MULTIPLE_USERS_KEY = 'multipleUsers' @@ -380,7 +381,7 @@ function IncomeNotificationItem(props: { {getReasonForShowingIncomeNotification(true)} - + @@ -421,7 +422,7 @@ function IncomeNotificationItem(props: { /> ))} {getReasonForShowingIncomeNotification(false)} {' on'} - + @@ -477,7 +478,7 @@ function NotificationGroupItem(props: {
Activity on - +
@@ -616,7 +617,22 @@ function NotificationItem(props: { highlighted && 'bg-indigo-200 hover:bg-indigo-100' )} > - + + track('Notification Clicked', { + type: 'notification item', + sourceType, + sourceUserName, + sourceUserAvatarUrl, + sourceUpdateType, + reasonText, + reason, + sourceUserUsername, + sourceText, + }) + } + > ) : ( - + )}
@@ -686,11 +702,11 @@ export const setNotificationsAsSeen = (notifications: Notification[]) => { return notifications } -function NotificationLink(props: { +function QuestionLink(props: { notification: Notification - noClick?: boolean + ignoreClick?: boolean }) { - const { notification, noClick } = props + const { notification, ignoreClick } = props const { sourceType, sourceContractTitle, @@ -699,7 +715,8 @@ function NotificationLink(props: { sourceSlug, sourceTitle, } = notification - if (noClick) + + if (ignoreClick) return ( {sourceContractTitle || sourceTitle} @@ -717,6 +734,17 @@ function NotificationLink(props: { ? `${groupPath(sourceSlug)}` : '' } + onClick={() => + track('Notification Clicked', { + type: 'question title', + sourceType, + sourceContractTitle, + sourceContractCreatorUsername, + sourceContractSlug, + sourceSlug, + sourceTitle, + }) + } > {sourceContractTitle || sourceTitle} @@ -969,6 +997,10 @@ function NotificationSettings() { newValue: notification_subscribe_types ) { if (!privateUser) return + track('In-App Notification Preferences Changed', { + newPreference: newValue, + oldPreference: privateUser.notificationPreferences, + }) toast.promise( updatePrivateUser(privateUser.id, { notificationPreferences: newValue,