Vulcan/packages/vulcan-events-intercom/lib/client/intercom-client.js
2018-01-25 13:43:35 -06:00

103 lines
2.4 KiB
JavaScript

import { getSetting, addCallback, Utils } from 'meteor/vulcan:core';
import { addPageFunction, addInitFunction, addIdentifyFunction, addTrackFunction } from 'meteor/vulcan:events';
/*
Identify User
*/
function intercomIdentify(currentUser) {
intercomSettings = {
app_id: getSetting('intercom.appId'),
name: currentUser.displayName,
email: currentUser.email,
created_at: currentUser.createdAt,
_id: currentUser._id,
pageUrl: currentUser.pageUrl,
};
(function() {
var w = window;
var ic = w.Intercom;
if (typeof ic === 'function') {
ic('reattach_activator');
ic('update', intercomSettings);
} else {
var d = document;
var i = function() {
i.c(arguments);
};
i.q = [];
i.c = function(args) {
i.q.push(args);
};
w.Intercom = i;
function l() {
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = getSetting('intercom.widgetUrl', 'https://widget.intercom.io/widget/icygo7se');
var x = d.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
if (w.attachEvent) {
w.attachEvent('onload', l);
} else {
w.addEventListener('load', l, false);
}
}
})();
}
addIdentifyFunction(intercomIdentify);
/*
Track Event
*/
// function segmentTrack(eventName, eventProperties) {
// analytics.track(eventName, eventProperties);
// }
// addTrackFunction(segmentTrack);
/*
Init Snippet
*/
function intercomInit() {
window.intercomSettings = {
app_id: getSetting('intercom.appId'),
};
(function() {
var w = window;
var ic = w.Intercom;
if (typeof ic === 'function') {
ic('reattach_activator');
ic('update', intercomSettings);
} else {
var d = document;
var i = function() {
i.c(arguments);
};
i.q = [];
i.c = function(args) {
i.q.push(args);
};
w.Intercom = i;
function l() {
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = getSetting('intercom.widgetUrl', 'https://widget.intercom.io/widget/icygo7se');
var x = d.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
if (w.attachEvent) {
w.attachEvent('onload', l);
} else {
w.addEventListener('load', l, false);
}
}
})();
}
addInitFunction(intercomInit);