Skip to content

Commit

Permalink
feat: log posthog events for multi wallet create (#1098)
Browse files Browse the repository at this point in the history
  • Loading branch information
shawnbusuttil committed Apr 29, 2024
1 parent a77c8bd commit b42078f
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PostHogAction, PostHogOnboardingActionsType } from './types';
import { PostHogAction, PostHogOnboardingActionsType, PostHogMultiWalletActionsType } from './types';

export const postHogOnboardingActions: PostHogOnboardingActionsType = {
onboarding: {
Expand Down Expand Up @@ -41,3 +41,17 @@ export const postHogOnboardingActions: PostHogOnboardingActionsType = {
PostHogAction.UnlockWalletForgotPasswordRecoveryPhrasePasteFromClipboardClick
}
};

export const postHogMultiWalletActions: PostHogMultiWalletActionsType = {
create: {
SETUP_OPTION_CLICK: PostHogAction.MultiWalletCreateClick,
SAVE_RECOVERY_PHRASE_NEXT_CLICK: PostHogAction.MultiWalletCreateSaveRecoveryPhraseNextClick,
ENTER_RECOVERY_PHRASE_NEXT_CLICK: PostHogAction.MultiWalletCreateEnterRecoveryPhraseNextClick,
ENTER_WALLET: PostHogAction.MultiWalletCreateEnterWalletClick,
RECOVERY_PHRASE_INTRO_WATCH_VIDEO_CLICK: PostHogAction.MultiWalletCreateSaveRecoveryPhraseIntroPlayVideoClick,
RECOVERY_PHRASE_INTRO_VIDEO_GOTIT_CLICK: PostHogAction.MultiWalletCreateKeepWalletSecureGotItClick,
RECOVERY_PHRASE_COPY_TO_CLIPBOARD_CLICK: PostHogAction.MultiWalletCreateSaveRecoveryPhraseCopyToClipboardClick,
RECOVERY_PHRASE_PASTE_FROM_CLIPBOARD_CLICK:
PostHogAction.MultiWalletCreateEnterRecoveryPhrasePasteFromClipboardClick
}
};
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ export enum TxCreationType {
}

export type OnboardingFlows = 'create' | 'restore' | 'hw' | 'forgot_password' | 'onboarding';
export type MultiWalletFlows = 'create' | 'restore' | 'hw';
export type PostHogActionsKeys =
| 'SETUP_OPTION_CLICK'
| 'ANALYTICS_AGREE_CLICK'
Expand All @@ -60,7 +61,9 @@ export type PostHogActionsKeys =
| 'RECOVERY_PHRASE_PASTE_FROM_CLIPBOARD_CLICK'
| 'RECOVERY_PASSPHRASE_VERIFICATION_NEXT_CLICK';
export type PostHogOnboardingActionsValueType = Partial<Record<PostHogActionsKeys, PostHogAction>>;
export type PostHogMultiWalletActionsValueType = Partial<Record<PostHogActionsKeys, PostHogAction>>;
export type PostHogOnboardingActionsType = Partial<Record<OnboardingFlows, PostHogOnboardingActionsValueType>>;
export type PostHogMultiWalletActionsType = Partial<Record<MultiWalletFlows, PostHogMultiWalletActionsValueType>>;
export type PostHogPersonProperties = {
$set: {
user_tracking_type: UserTrackingType;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { useWalletManager } from '@hooks/useWalletManager';
import { useAnalyticsContext } from '@providers/AnalyticsProvider';
import { PostHogAction } from '@lace/common';
import { getWalletAccountsQtyString } from '@src/utils/get-wallet-count-string';
import { postHogOnboardingActions } from '@providers/AnalyticsProvider/analyticsTracker';
import { postHogMultiWalletActions } from '@providers/AnalyticsProvider/analyticsTracker';

const wordList = wordlists.english;

Expand Down Expand Up @@ -60,6 +60,8 @@ export const NewRecoveryPhrase = (): JSX.Element => {

const saveWallet = useCallback(async () => {
const { source } = await createWallet(data);
// move this to name-password setup submit handle after order changes
await analytics.sendEventToPostHog(PostHogAction.MultiWalletCreateEnterWalletClick);
await analytics.sendEventToPostHog(PostHogAction.MultiWalletCreateAdded, {
// eslint-disable-next-line camelcase
$set: { wallet_accounts_quantity: await getWalletAccountsQtyString(walletRepository) }
Expand All @@ -84,28 +86,28 @@ export const NewRecoveryPhrase = (): JSX.Element => {
onClose={() => {
onClose();
void analytics.sendEventToPostHog(
postHogOnboardingActions.create.RECOVERY_PHRASE_INTRO_VIDEO_GOTIT_CLICK
postHogMultiWalletActions.create.RECOVERY_PHRASE_INTRO_VIDEO_GOTIT_CLICK
);
}}
/>
)}
onNext={saveWallet}
onStepNext={(mnemonicStage: MnemonicStage) => {
mnemonicStage === 'writedown'
? analytics.sendEventToPostHog(postHogOnboardingActions.create.SAVE_RECOVERY_PHRASE_NEXT_CLICK)
: analytics.sendEventToPostHog(postHogOnboardingActions.create.ENTER_RECOVERY_PHRASE_NEXT_CLICK);
? analytics.sendEventToPostHog(postHogMultiWalletActions.create.SAVE_RECOVERY_PHRASE_NEXT_CLICK)
: analytics.sendEventToPostHog(postHogMultiWalletActions.create.ENTER_RECOVERY_PHRASE_NEXT_CLICK);
}}
translations={walletSetupMnemonicStepTranslations}
suggestionList={wordList}
passphraseInfoLink={`${process.env.FAQ_URL}?question=what-happens-if-i-lose-my-recovery-phrase`}
onWatchVideoClick={() =>
analytics.sendEventToPostHog(postHogOnboardingActions.create.RECOVERY_PHRASE_INTRO_WATCH_VIDEO_CLICK)
analytics.sendEventToPostHog(postHogMultiWalletActions.create.RECOVERY_PHRASE_INTRO_WATCH_VIDEO_CLICK)
}
onCopyToClipboard={() =>
analytics.sendEventToPostHog(postHogOnboardingActions.create.RECOVERY_PHRASE_COPY_TO_CLIPBOARD_CLICK)
analytics.sendEventToPostHog(postHogMultiWalletActions.create.RECOVERY_PHRASE_COPY_TO_CLIPBOARD_CLICK)
}
onPasteFromClipboard={() =>
analytics.sendEventToPostHog(postHogOnboardingActions.create.RECOVERY_PHRASE_PASTE_FROM_CLIPBOARD_CLICK)
analytics.sendEventToPostHog(postHogMultiWalletActions.create.RECOVERY_PHRASE_PASTE_FROM_CLIPBOARD_CLICK)
}
isBackFromNextStep={isBackFromNextStep}
/>
Expand Down
11 changes: 10 additions & 1 deletion packages/common/src/analytics/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,16 @@ export enum PostHogAction {
MultiWalletDisableAccount = 'multiwallet | disable account | click',
MultiWalletEnableAccount = 'multiwallet | enable account | click',
// Multi wallet Create new wallet
MultiWalletCreateClick = 'multiwallet | new wallet | create | click',
MultiWalletCreateClick = 'multiwallet | new wallet revamp | create | click',
MultiWalletCreateSaveRecoveryPhraseNextClick = 'multiwallet | new wallet revamp | save your recovery phrase | next | click',
MultiWalletCreateEnterRecoveryPhraseNextClick = 'multiwallet | new wallet revamp | enter your recovery phrase | next | click',
MultiWalletCreateSaveRecoveryPhraseIntroPlayVideoClick = 'multiwallet | new wallet revamp | save your recovery phrase | watch video | click',
MultiWalletCreateSaveRecoveryPhraseCopyToClipboardClick = 'multiwallet | new wallet revamp | save your recovery phrase | copy to clipboard | click',
MultiWalletCreateKeepWalletSecureGotItClick = 'multiwallet | new wallet revamp | keeping your wallet secure | got it | click',
MultiWalletCreateEnterRecoveryPhrasePasteFromClipboardClick = 'multiwallet | new wallet revamp | enter your recovery phrase | paste from clipboard | click',
MultiWalletCreateEnterWalletClick = "multiwallet | new wallet revamp | let's set up your new wallet | enter wallet | click",

// depr
MultiWalletCreateWalletNamePasswordNextClick = 'multiwallet | new wallet | wallet name & password | next | click',
MultiWalletCreatePassphraseIntroPlayVideoClick = 'multiwallet | new wallet | passphrase intro | play video | click',
MultiwalletCreatePassphraseIntroNextClick = 'multiwallet | new wallet | passphrase intro | next | click',
Expand Down

0 comments on commit b42078f

Please sign in to comment.