Skip to content

Commit

Permalink
feat(recurring buy): analytics events
Browse files Browse the repository at this point in the history
  • Loading branch information
blockdylanb committed Aug 31, 2021
1 parent 1d4bdbe commit c030440
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { ModalOriginType } from 'data/modals/types'

import {
RecurringBuyNextPayment,
RecurringBuyOrigins,
RecurringBuyPeriods,
RecurringBuyRegisteredList,
RecurringBuyState,
Expand All @@ -27,6 +28,7 @@ const recurringBuySlice = createSlice({
createRecurringBuy: () => {},
fetchPaymentInfo: () => {},
fetchRegisteredList: () => {},
learnMoreLinkClicked: (state, action: PayloadAction<RecurringBuyOrigins>) => {},
paymentInfoFailure: (state, action: PayloadAction<string>) => {
state.paymentInfo = Remote.Failure(action.payload)
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ export enum RecurringBuyStepType {
export enum RecurringBuyOrigins {
BUY_CONFIRMATION = 'BUY_CONFIRMATION',
COIN_PAGE = 'COIN_PAGE',
CURRENCY_PAGE = 'CURRENCY_PAGE',
DASHBOARD_PROMO = 'DASHBOARD_PROMO',
DCA_DETAILS_LINK = 'DCA_DETAILS_LINK',
DETAILS_SCREEN = 'DETAILS_SCREEN',
RECURRING_BUYS_BANNER = 'RECURRING_BUYS_BANNER',
SIMPLE_BUY_ORDER_SUMMARY = 'SIMPLE_BUY_ORDER_SUMMARY'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import {
RecurringBuyCancelPayload,
RecurringBuyClickedPayload,
RecurringBuyDetailsClickedPayload,
RecurringBuyInfoViewedPayload,
RecurringBuyLearnMoreClickPayload,
SendReceive,
WithdrawalMethod
} from 'middleware/analyticsMiddleware/types'
Expand Down Expand Up @@ -1636,18 +1638,46 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {

break
}
case actions.components.recurringBuy.learnMoreLinkClicked.type: {
const state = store.getState()
const nabuId = state.profile.userData.getOrElse({})?.id ?? null
const email = state.profile.userData.getOrElse({})?.emailVerified
? state.profile.userData.getOrElse({})?.email
: null
const tier = state.profile.userData.getOrElse({})?.tiers?.current ?? null
const origin = action.payload

analytics.push(AnalyticsKey.RECURRING_BUY_LEARN_MORE_CLICKED, {
properties: { origin } as RecurringBuyLearnMoreClickPayload,
traits: {
email,
nabuId,
tier
}
})
break
}
case actions.components.recurringBuy.setStep.type: {
const state = store.getState()
const nabuId = state.profile.userData.getOrElse({})?.id ?? null
const email = state.profile.userData.getOrElse({})?.emailVerified
? state.profile.userData.getOrElse({})?.email
: null
const tier = state.profile.userData.getOrElse({})?.tiers?.current ?? null
const { inputCurrency: currency }: { inputCurrency: string } =
state.components.recurringBuy.active
const stepName: RecurringBuyStepType = action.payload.step
const origin = RecurringBuyOrigins[action.payload.origin]
switch (stepName) {
case RecurringBuyStepType.INIT_PAGE: {
analytics.push(AnalyticsKey.RECURRING_BUY_INFO_VIEWED, {
properties: { page: 0 } as RecurringBuyInfoViewedPayload,
traits: {
email,
nabuId,
tier
}
})
break
}
case RecurringBuyStepType.REMOVE_CONFIRM: {
const {
destinationCurrency: output_currency,
Expand Down Expand Up @@ -1688,6 +1718,8 @@ const analyticsMiddleware = () => (store) => (next) => (action) => {
break
}
case RecurringBuyStepType.DETAILS: {
const { inputCurrency: currency }: { inputCurrency: string } =
state.components.recurringBuy.active
analytics.push(AnalyticsKey.RECURRING_BUY_DETAILS_CLICKED, {
properties: {
currency,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -359,6 +359,14 @@ type ReceiveDetailsCopiedPayload = BasePayload & {
currency: string
}

export type RecurringBuyLearnMoreClickPayload = BasePayload & {
origin: RecurringBuyOrigins
}

export type RecurringBuyInfoViewedPayload = BasePayload & {
page: number
}

export type RecurringBuyCancelPayload = BasePayload & {
frequency: RecurringBuyPeriods
input_amount: number
Expand Down Expand Up @@ -626,6 +634,8 @@ type AnalyticsProperties =
| PrivateKeysShownPayload
| ReceiveCurrencySelectedPayload
| ReceiveDetailsCopiedPayload
| RecurringBuyLearnMoreClickPayload
| RecurringBuyInfoViewedPayload
| RecurringBuyCancelPayload
| RecurringBuyClickedPayload
| RecurringBuyDetailsClickedPayload
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ const BannerButton = styled(Button)`
const RecurringBuys = (props: Props) => {
const showModal = () => {
props.recurringBuyActions.showModal({ origin: RecurringBuyOrigins.RECURRING_BUYS_BANNER })
props.recurringBuyActions.learnMoreLinkClicked(RecurringBuyOrigins.DASHBOARD_PROMO)
}

return (
Expand Down

0 comments on commit c030440

Please sign in to comment.