mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
@@ -0,0 +1,9 @@
|
||||
import appConfig from 'configs/app/config';
|
||||
import delay from 'lib/delay';
|
||||
|
||||
export default function isGoogleAnalyticsLoaded(retries = 3): Promise<boolean> {
|
||||
if (!retries || !appConfig.googleAnalytics.propertyId) {
|
||||
return Promise.resolve(false);
|
||||
}
|
||||
return typeof window.ga?.getAll === 'function' ? Promise.resolve(true) : delay(500).then(() => isGoogleAnalyticsLoaded(retries - 1));
|
||||
}
|
||||
+26
-25
@@ -10,6 +10,7 @@ import * as cookies from 'lib/cookies';
|
||||
import getQueryParamString from 'lib/router/getQueryParamString';
|
||||
|
||||
import getGoogleAnalyticsClientId from './getGoogleAnalyticsClientId';
|
||||
import isGoogleAnalyticsLoaded from './isGoogleAnalyticsLoaded';
|
||||
|
||||
export default function useMixpanelInit() {
|
||||
const [ isInited, setIsInited ] = React.useState(false);
|
||||
@@ -17,35 +18,35 @@ export default function useMixpanelInit() {
|
||||
const debugFlagQuery = React.useRef(getQueryParamString(router.query._mixpanel_debug));
|
||||
|
||||
React.useEffect(() => {
|
||||
if (!appConfig.mixpanel.projectToken) {
|
||||
return;
|
||||
}
|
||||
isGoogleAnalyticsLoaded().then((isGALoaded) => {
|
||||
if (!appConfig.mixpanel.projectToken) {
|
||||
return;
|
||||
}
|
||||
|
||||
const debugFlagCookie = cookies.get(cookies.NAMES.MIXPANEL_DEBUG);
|
||||
const debugFlagCookie = cookies.get(cookies.NAMES.MIXPANEL_DEBUG);
|
||||
|
||||
const config: Partial<Config> = {
|
||||
debug: Boolean(debugFlagQuery.current || debugFlagCookie),
|
||||
};
|
||||
const isAuth = Boolean(cookies.get(cookies.NAMES.API_TOKEN));
|
||||
const userId = getGoogleAnalyticsClientId();
|
||||
const config: Partial<Config> = {
|
||||
debug: Boolean(debugFlagQuery.current || debugFlagCookie),
|
||||
};
|
||||
const isAuth = Boolean(cookies.get(cookies.NAMES.API_TOKEN));
|
||||
|
||||
mixpanel.init(appConfig.mixpanel.projectToken, config);
|
||||
mixpanel.register({
|
||||
'Chain id': appConfig.network.id,
|
||||
Environment: appConfig.isDev ? 'Dev' : 'Prod',
|
||||
Authorized: isAuth,
|
||||
'Viewport width': window.innerWidth,
|
||||
'Viewport height': window.innerHeight,
|
||||
Language: window.navigator.language,
|
||||
'User id': userId,
|
||||
'Device type': _capitalize(deviceType),
|
||||
mixpanel.init(appConfig.mixpanel.projectToken, config);
|
||||
mixpanel.register({
|
||||
'Chain id': appConfig.network.id,
|
||||
Environment: appConfig.isDev ? 'Dev' : 'Prod',
|
||||
Authorized: isAuth,
|
||||
'Viewport width': window.innerWidth,
|
||||
'Viewport height': window.innerHeight,
|
||||
Language: window.navigator.language,
|
||||
'User id': isGALoaded ? getGoogleAnalyticsClientId() : undefined,
|
||||
'Device type': _capitalize(deviceType),
|
||||
});
|
||||
|
||||
setIsInited(true);
|
||||
if (debugFlagQuery.current && !debugFlagCookie) {
|
||||
cookies.set(cookies.NAMES.MIXPANEL_DEBUG, 'true');
|
||||
}
|
||||
});
|
||||
|
||||
setIsInited(true);
|
||||
|
||||
if (debugFlagQuery.current && !debugFlagCookie) {
|
||||
cookies.set(cookies.NAMES.MIXPANEL_DEBUG, 'true');
|
||||
}
|
||||
}, []);
|
||||
|
||||
return isInited;
|
||||
|
||||
Reference in New Issue
Block a user