Vulcan/packages/vulcan-events-intercom/lib/client/intercom-client.js

92 lines
2 KiB
JavaScript
Raw Normal View History

2018-01-25 15:03:03 -06:00
import { getSetting, /* addCallback, Utils */ } from 'meteor/vulcan:core';
import {
// addPageFunction,
addInitFunction,
addIdentifyFunction,
// addTrackFunction,
} from 'meteor/vulcan:events';
/*
Identify User
*/
function intercomIdentify(currentUser) {
2018-01-25 15:03:03 -06:00
// eslint-disable-next-line no-undef
intercomSettings = {
app_id: getSetting('intercom.appId'),
name: currentUser.displayName,
email: currentUser.email,
created_at: currentUser.createdAt,
2018-02-17 10:56:50 +09:00
user_id: currentUser._id,
pageUrl: currentUser.pageUrl,
};
(function() {
var w = window;
var ic = w.Intercom;
if (typeof ic === 'function') {
2018-02-17 10:56:50 +09:00
// ic('reattach_activator');
2018-01-25 15:03:03 -06:00
// eslint-disable-next-line no-undef
ic('update', intercomSettings);
} else {
2018-02-17 10:56:50 +09:00
intercomInit();
}
})();
}
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');
2018-01-25 15:03:03 -06:00
// 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;
2018-01-25 15:03:03 -06:00
// eslint-disable-next-line no-inner-declarations
function l() {
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
2018-01-27 12:42:28 +09:00
s.src = `https://widget.intercom.io/widget/${getSetting('intercom.appId')}`;
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);