diff --git a/frontend/src/AppRoutes/index.tsx b/frontend/src/AppRoutes/index.tsx index 945ac8b6be..645974204c 100644 --- a/frontend/src/AppRoutes/index.tsx +++ b/frontend/src/AppRoutes/index.tsx @@ -178,23 +178,25 @@ function App(): JSX.Element { }, [pathname]); useEffect(() => { - try { - const isThemeAnalyticsSent = getLocalStorageApi( - LOCALSTORAGE.THEME_ANALYTICS, - ); - if (!isThemeAnalyticsSent) { - trackEvent('Theme Analytics', { - theme: isDarkMode ? THEME_MODE.DARK : THEME_MODE.LIGHT, - user: pick(user, ['email', 'userId', 'name']), - org, - }); - setLocalStorageApi(LOCALSTORAGE.THEME_ANALYTICS, 'true'); + if (user && user?.email && user?.userId && user?.name) { + try { + const isThemeAnalyticsSent = getLocalStorageApi( + LOCALSTORAGE.THEME_ANALYTICS_V1, + ); + if (!isThemeAnalyticsSent) { + trackEvent('Theme Analytics', { + theme: isDarkMode ? THEME_MODE.DARK : THEME_MODE.LIGHT, + user: pick(user, ['email', 'userId', 'name']), + org, + }); + setLocalStorageApi(LOCALSTORAGE.THEME_ANALYTICS_V1, 'true'); + } + } catch { + console.error('Failed to parse local storage theme analytics event'); } - } catch { - console.error('Failed to parse local storage theme analytics event'); } // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + }, [user]); return ( diff --git a/frontend/src/constants/localStorage.ts b/frontend/src/constants/localStorage.ts index 481bf5dab0..c7e8b81179 100644 --- a/frontend/src/constants/localStorage.ts +++ b/frontend/src/constants/localStorage.ts @@ -18,5 +18,5 @@ export enum LOCALSTORAGE { DASHBOARD_VARIABLES = 'DASHBOARD_VARIABLES', SHOW_EXPLORER_TOOLBAR = 'SHOW_EXPLORER_TOOLBAR', PINNED_ATTRIBUTES = 'PINNED_ATTRIBUTES', - THEME_ANALYTICS = 'THEME_ANALYTICS', + THEME_ANALYTICS_V1 = 'THEME_ANALYTICS_V1', } diff --git a/frontend/src/hooks/useDarkMode/index.tsx b/frontend/src/hooks/useDarkMode/index.tsx index d7e3a279e0..ef2883b4b3 100644 --- a/frontend/src/hooks/useDarkMode/index.tsx +++ b/frontend/src/hooks/useDarkMode/index.tsx @@ -30,7 +30,7 @@ export function ThemeProvider({ children }: ThemeProviderProps): JSX.Element { setTheme(THEME_MODE.LIGHT); set(LOCALSTORAGE.THEME, THEME_MODE.LIGHT); } - set(LOCALSTORAGE.THEME_ANALYTICS, ''); + set(LOCALSTORAGE.THEME_ANALYTICS_V1, ''); }, [theme]); const value = useMemo(