Vulcan/packages/vulcan-events-intercom/lib/client/intercom-client.js
Justin Reynolds 75b6ece0a4 Fix linting
2018-01-25 15:03:03 -06:00

113 lines
2.7 KiB
JavaScript

import { getSetting, /* addCallback, Utils */ } from 'meteor/vulcan:core';
import {
// addPageFunction,
addInitFunction,
addIdentifyFunction,
// addTrackFunction,
} from 'meteor/vulcan:events';
/*
Identify User
*/
function intercomIdentify(currentUser) {
// eslint-disable-next-line no-undef
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');
// eslint-disable-next-line no-undef
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;
// eslint-disable-next-line no-inner-declarations
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');
// eslint-disable-next-line no-undef
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;
// eslint-disable-next-line no-inner-declarations
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);