JSdoc
This commit is contained in:
parent
b4f9fd4f12
commit
a00598ce38
|
@ -3,6 +3,9 @@ export default class IntercomClient {
|
|||
this.token = token
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiate intercom using their provided script.
|
||||
*/
|
||||
init() {
|
||||
if (!this.token) return
|
||||
|
||||
|
@ -43,6 +46,11 @@ export default class IntercomClient {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the intercom chat bubble.
|
||||
* @param {Object} user - user to identify
|
||||
* @returns Intercom global object
|
||||
*/
|
||||
show(user = {}) {
|
||||
if (!this.initialised) return
|
||||
|
||||
|
@ -52,21 +60,35 @@ export default class IntercomClient {
|
|||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Update intercom user details and messages.
|
||||
* @returns Intercom global object
|
||||
*/
|
||||
update() {
|
||||
if (!this.initialised) return
|
||||
|
||||
return window.Intercom("update")
|
||||
}
|
||||
|
||||
/**
|
||||
* Capture analytics events and send them to intercom.
|
||||
* @param {String} event - event identifier
|
||||
* @param {Object} props - properties for the event
|
||||
* @returns Intercom global object
|
||||
*/
|
||||
captureEvent(event, props = {}) {
|
||||
if (!this.initialised) return
|
||||
|
||||
window.Intercom("trackEvent", event, props)
|
||||
return window.Intercom("trackEvent", event, props)
|
||||
}
|
||||
|
||||
/**
|
||||
* Disassociate the user from the current session.
|
||||
* @returns Intercom global object
|
||||
*/
|
||||
logout() {
|
||||
if (!this.initialised) return
|
||||
|
||||
window.Intercom("shutdown")
|
||||
return window.Intercom("shutdown")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,24 +20,31 @@ export default class PosthogClient {
|
|||
this.initialised = true
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the posthog context to the current user
|
||||
* @param {String} id - unique user id
|
||||
*/
|
||||
identify(id) {
|
||||
if (!this.initialised) return
|
||||
|
||||
posthog.identify(id)
|
||||
}
|
||||
|
||||
/**
|
||||
* Update user metadata associated with current user in posthog
|
||||
* @param {Object} meta - user fields
|
||||
*/
|
||||
updateUser(meta) {
|
||||
if (!this.initialised) return
|
||||
|
||||
posthog.people.set(meta)
|
||||
}
|
||||
|
||||
captureException(err) {
|
||||
if (!this.initialised) return
|
||||
|
||||
this.captureEvent("Error", { error: err.message ? err.message : err })
|
||||
}
|
||||
|
||||
/**
|
||||
* Capture analytics events and send them to posthog.
|
||||
* @param {String} event - event identifier
|
||||
* @param {Object} props - properties for the event
|
||||
*/
|
||||
captureEvent(eventName, props) {
|
||||
if (!this.initialised) return
|
||||
|
||||
|
@ -45,6 +52,10 @@ export default class PosthogClient {
|
|||
posthog.capture(eventName, props)
|
||||
}
|
||||
|
||||
/**
|
||||
* Submit NPS feedback to posthog.
|
||||
* @param {Object} values - NPS Values
|
||||
*/
|
||||
npsFeedback(values) {
|
||||
if (!this.initialised) return
|
||||
|
||||
|
@ -58,6 +69,9 @@ export default class PosthogClient {
|
|||
posthog.capture(Events.NPS.SUBMITTED, prefixedFeedback)
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset posthog user back to initial state on logout.
|
||||
*/
|
||||
logout() {
|
||||
if (!this.initialised) return
|
||||
|
||||
|
|
|
@ -13,12 +13,20 @@ export default class SentryClient {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Capture an exception and send it to sentry.
|
||||
* @param {Error} err - JS error object
|
||||
*/
|
||||
captureException(err) {
|
||||
if (!this.initalised) return
|
||||
|
||||
Sentry.captureException(err)
|
||||
}
|
||||
|
||||
/**
|
||||
* Identify user in sentry.
|
||||
* @param {String} id - Unique user id
|
||||
*/
|
||||
identify(id) {
|
||||
if (!this.initalised) return
|
||||
|
||||
|
|
Loading…
Reference in New Issue