trackAdvancedAnalyticsEvent.tsx 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {coreUIEventMap, CoreUIEventParameters} from './coreuiAnalyticsEvents';
  2. import {dashboardsEventMap, DashboardsEventParameters} from './dashboardsAnalyticsEvents';
  3. import {discoverEventMap, DiscoverEventParameters} from './discoverAnalyticsEvents';
  4. import {growthEventMap, GrowthEventParameters} from './growthAnalyticsEvents';
  5. import {issueEventMap, IssueEventParameters} from './issueAnalyticsEvents';
  6. import makeAnalyticsFunction from './makeAnalyticsFunction';
  7. import {
  8. performanceEventMap,
  9. PerformanceEventParameters,
  10. } from './performanceAnalyticsEvents';
  11. import {profilingEventMap, ProfilingEventParameters} from './profilingAnalyticsEvents';
  12. import {samplingEventMap, SamplingEventParameters} from './samplingAnalyticsEvents';
  13. import {searchEventMap, SearchEventParameters} from './searchAnalyticsEvents';
  14. import {settingsEventMap, SettingsEventParameters} from './settingsAnalyticsEvents';
  15. import {TeamInsightsEventParameters, workflowEventMap} from './workflowAnalyticsEvents';
  16. type EventParameters = GrowthEventParameters &
  17. CoreUIEventParameters &
  18. DashboardsEventParameters &
  19. DiscoverEventParameters &
  20. IssueEventParameters &
  21. PerformanceEventParameters &
  22. ProfilingEventParameters &
  23. SearchEventParameters &
  24. SettingsEventParameters &
  25. SamplingEventParameters &
  26. TeamInsightsEventParameters;
  27. const allEventMap: Record<string, string | null> = {
  28. ...coreUIEventMap,
  29. ...dashboardsEventMap,
  30. ...discoverEventMap,
  31. ...growthEventMap,
  32. ...issueEventMap,
  33. ...performanceEventMap,
  34. ...profilingEventMap,
  35. ...samplingEventMap,
  36. ...searchEventMap,
  37. ...settingsEventMap,
  38. ...workflowEventMap,
  39. };
  40. /**
  41. * Generic typed analytics function for growth, issue, and performance events.
  42. * Can split up analytics functions to a smaller set of events like we do for trackIntegrationAnalytics
  43. */
  44. const trackAdvancedAnalyticsEvent = makeAnalyticsFunction<EventParameters>(allEventMap);
  45. export default trackAdvancedAnalyticsEvent;