Files
omnivore/packages/web/lib/analytics.ts
2024-10-31 12:09:55 +08:00

39 lines
915 B
TypeScript

import { UserBasicData } from './networking/queries/useGetViewerQuery'
import { intercomAppID } from './appConfig'
const userInfo = (
user: UserBasicData
): { user_id: string; name: string; user_hash: string } => {
return {
user_id: user.id,
name: user.name,
user_hash: user.intercomHash,
}
}
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 => {
if (!intercomAppID || !window.Intercom) {
return
}
if (!window.ANALYTICS_INITIALIZED) {
initAnalytics(user)
}
if (user) {
window.Intercom('update', userInfo(user))
}
}