growthAnalyticsEvents.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. type MobilePromptBannerParams = {
  2. matchedUserAgentString: string;
  3. };
  4. type CheckShowParams = MobilePromptBannerParams & {
  5. userAgentMatches: boolean;
  6. matchedUserAgentString: string;
  7. hasMobileProject: boolean;
  8. snoozedOrDismissed: boolean;
  9. mobileEventBrowserName: string;
  10. mobileEventClientOsName: string;
  11. showCTA: boolean;
  12. };
  13. //define the event key to payload mappings
  14. export type GrowthEventParameters = {
  15. 'growth.check_show_mobile_prompt_banner': CheckShowParams;
  16. 'growth.dismissed_mobile_prompt_banner': MobilePromptBannerParams;
  17. 'growth.opened_mobile_project_suggest_modal': MobilePromptBannerParams;
  18. 'growth.clicked_mobile_prompt_setup_project': MobilePromptBannerParams;
  19. 'growth.clicked_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  20. 'growth.submitted_mobile_prompt_ask_teammate': MobilePromptBannerParams;
  21. 'growth.demo_click_get_started': {};
  22. };
  23. type GrowthAnalyticsKey = keyof GrowthEventParameters;
  24. export const growthEventMap: Record<GrowthAnalyticsKey, string> = {
  25. 'growth.check_show_mobile_prompt_banner': 'Growth: Check Show Mobile Prompt Banner',
  26. 'growth.dismissed_mobile_prompt_banner': 'Growth: Dismissed Mobile Prompt Banner',
  27. 'growth.opened_mobile_project_suggest_modal':
  28. 'Growth: Open Mobile Project Suggest Modal',
  29. 'growth.clicked_mobile_prompt_setup_project':
  30. 'Growth: Clicked Mobile Prompt Setup Project',
  31. 'growth.clicked_mobile_prompt_ask_teammate':
  32. 'Growth: Clicked Mobile Prompt Ask Teammate',
  33. 'growth.submitted_mobile_prompt_ask_teammate':
  34. 'Growth: Submitted Mobile Prompt Ask Teammate',
  35. 'growth.demo_click_get_started': 'Growth: Demo Click Get Started',
  36. };