39 lines
915 B
TypeScript
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))
|
|
}
|
|
}
|