omnivore/packages/web/lib/analytics.ts

39 lines
915 B
TypeScript
Raw Permalink Normal View History

2022-02-11 17:24:33 +00:00
import { UserBasicData } from './networking/queries/useGetViewerQuery'
2024-10-31 04:02:17 +00:00
import { intercomAppID } from './appConfig'
2023-09-13 02:22:45 +00:00
2023-10-27 08:13:03 +00:00
const userInfo = (
user: UserBasicData
): { user_id: string; name: string; user_hash: string } => {
2022-02-11 17:24:33 +00:00
return {
user_id: user.id,
name: user.name,
2023-10-27 08:13:03 +00:00
user_hash: user.intercomHash,
2022-02-11 17:24:33 +00:00
}
}
const initAnalytics = (user?: UserBasicData): void => {
window.intercomSettings = {
app_id: intercomAppID ?? '',
hide_default_launcher: true,
vertical_padding: 120,
custom_launcher_selector: '.custom-intercom-launcher',
}
if (user) {
window.Intercom('boot', userInfo(user))
}
window.ANALYTICS_INITIALIZED = true
}
export const setupAnalytics = (user?: UserBasicData): void => {
2023-09-13 02:22:45 +00:00
if (!intercomAppID || !window.Intercom) {
return
}
if (!window.ANALYTICS_INITIALIZED) {
initAnalytics(user)
}
2022-02-11 17:24:33 +00:00
if (user) {
window.Intercom('update', userInfo(user))
}
}