diff --git a/app/client/src/utils/AnalyticsUtil.tsx b/app/client/src/utils/AnalyticsUtil.tsx new file mode 100644 index 0000000000..de4d0847ba --- /dev/null +++ b/app/client/src/utils/AnalyticsUtil.tsx @@ -0,0 +1,59 @@ + +export type EventName = "PAGE_VIEW" | "ADD_COMPONENT" | "DELETE_COMPONENT" | "RESIZE_COMPONENT" +export type Gender = "MALE" | "FEMALE" +export interface User { + userId: string + name: string + email: string + gender: Gender +} + +class AnalyticsUtil { + + static initializeHotjar(id: string, sv: string) { + (function init(h: any, o: any, t: any, j: any, a?: any, r?: any) { + h.hj = + h.hj || + function() { + (h.hj.q = h.hj.q || []).push(arguments); + }; + h._hjSettings = { hjid: id, hjsv: sv }; + a = o.getElementsByTagName('head')[0]; + r = o.createElement('script'); + r.async = 1; + r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; + a.appendChild(r); + })(window, document, '//static.hotjar.com/c/hotjar-', '.js?sv='); + }; + + static initializeSegment() { + (function init(window: any){ + var analytics=window.analytics=window.analytics||[]; + if(!analytics.initialize) { + if(analytics.invoked) { + window.console&&console.error&&console.error("Segment snippet included twice."); + } else { + analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on"]; + analytics.factory=function(t: any){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics} + }; + } + for(var t: any=0;t { switch (process.env.REACT_APP_ENVIRONMENT) { case "PRODUCTION": Sentry.init(SENTRY_PROD_CONFIG); - HotjarUtil.initializeHotjar(HOTJAR_PROD_HJID, HOTJAR_PROD_HJSV); + AnalyticsUtil.initializeHotjar(HOTJAR_PROD_HJID, HOTJAR_PROD_HJSV); + AnalyticsUtil.initializeSegment(); break; case "STAGING": Sentry.init(SENTRY_STAGE_CONFIG); break case "LOCAL": - HotjarUtil.initializeHotjar(HOTJAR_PROD_HJID, HOTJAR_PROD_HJSV); break; } } diff --git a/app/client/src/utils/HotjarUtil.tsx b/app/client/src/utils/HotjarUtil.tsx deleted file mode 100644 index 7c44babc48..0000000000 --- a/app/client/src/utils/HotjarUtil.tsx +++ /dev/null @@ -1,21 +0,0 @@ -class HotjarUtil { - - static initializeHotjar(id: string, sv: string) { - (function init(h: any, o: any, t: any, j: any, a?: any, r?: any) { - h.hj = - h.hj || - function() { - (h.hj.q = h.hj.q || []).push(arguments); - }; - h._hjSettings = { hjid: id, hjsv: sv }; - a = o.getElementsByTagName('head')[0]; - r = o.createElement('script'); - r.async = 1; - r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; - a.appendChild(r); - })(window, document, '//static.hotjar.com/c/hotjar-', '.js?sv='); - }; - -} - -export default HotjarUtil \ No newline at end of file