tb-react-live-chat-loader
Version:
Implement live chat in your react app without taking a performance hit.
90 lines (71 loc) • 8.22 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _waitForLoad = _interopRequireDefault(require("../utils/waitForLoad"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const domain = 'https://connect.facebook.net';
/* eslint-disable */
const loadScript = locale => {
if (window.FB) return false;
(function loadFacebookSDK(d, s, id) {
// fetch customerchat.js
const fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
const js = d.createElement(s);
js.id = id;
js.src = `${domain}/${locale}/sdk/xfbml.customerchat.js`;
if (fjs) {
var _fjs$parentNode;
(_fjs$parentNode = fjs.parentNode) === null || _fjs$parentNode === void 0 ? void 0 : _fjs$parentNode.insertBefore(js, fjs);
} else {
d.body.appendChild(js);
}
})(window.document, 'script', 'facebook-jssdk');
return true;
};
/* eslint-enable */
const load = ({
appID,
locale = 'en_US',
setState,
beforeInit = () => undefined,
onReady = () => undefined
}) => {
const loaded = loadScript(locale); // Continue as long as messenger hasn’t already been initialised.
if (loaded) {
beforeInit();
window.fbAsyncInit = function () {
window.FB.init(Object.assign({
cookie: true,
xfbml: true,
version: 'v6.0'
}, appID ? {
appId: appID
} : {}));
window.FB.Event.subscribe('customerchat.load', () => // Allow messenger to complete loading before removing fake widget
setTimeout(() => {
setState('complete');
onReady();
}, 3000));
};
}
return loaded;
};
const open = () => {
(0, _waitForLoad.default)(() => {
var _window$FB, _window$FB$CustomerCh;
return !!((_window$FB = window.FB) !== null && _window$FB !== void 0 && (_window$FB$CustomerCh = _window$FB.CustomerChat) !== null && _window$FB$CustomerCh !== void 0 && _window$FB$CustomerCh.show);
}, // messenger is slow to show once it has loaded
() => setTimeout(() => window.FB.CustomerChat.show(true), 2000));
};
var _default = {
domain,
load,
open
};
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvbWVzc2VuZ2VyLnRzIl0sIm5hbWVzIjpbImRvbWFpbiIsImxvYWRTY3JpcHQiLCJsb2NhbGUiLCJ3aW5kb3ciLCJGQiIsImxvYWRGYWNlYm9va1NESyIsImQiLCJzIiwiaWQiLCJmanMiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImdldEVsZW1lbnRCeUlkIiwianMiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImRvY3VtZW50IiwibG9hZCIsImFwcElEIiwic2V0U3RhdGUiLCJiZWZvcmVJbml0IiwidW5kZWZpbmVkIiwib25SZWFkeSIsImxvYWRlZCIsImZiQXN5bmNJbml0IiwiaW5pdCIsIk9iamVjdCIsImFzc2lnbiIsImNvb2tpZSIsInhmYm1sIiwidmVyc2lvbiIsImFwcElkIiwiRXZlbnQiLCJzdWJzY3JpYmUiLCJzZXRUaW1lb3V0Iiwib3BlbiIsIkN1c3RvbWVyQ2hhdCIsInNob3ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQTs7OztBQUVBLE1BQU1BLE1BQU0sR0FBRyw4QkFBZjs7QUFVQTtBQUNBLE1BQU1DLFVBQVUsR0FBSUMsTUFBRCxJQUE2QjtBQUM5QyxNQUFJQyxNQUFNLENBQUNDLEVBQVgsRUFBZSxPQUFPLEtBQVA7O0FBQ2QsR0FBQyxTQUFTQyxlQUFULENBQXlCQyxDQUF6QixFQUE0QkMsQ0FBNUIsRUFBK0JDLEVBQS9CLEVBQW1DO0FBQ25DO0FBQ0EsVUFBTUMsR0FBRyxHQUFHSCxDQUFDLENBQUNJLG9CQUFGLENBQXVCSCxDQUF2QixFQUEwQixDQUExQixDQUFaOztBQUNBLFFBQUlELENBQUMsQ0FBQ0ssY0FBRixDQUFpQkgsRUFBakIsQ0FBSixFQUEwQjtBQUN4QjtBQUNEOztBQUNELFVBQU1JLEVBQUUsR0FBR04sQ0FBQyxDQUFDTyxhQUFGLENBQWdCTixDQUFoQixDQUFYO0FBQ0FLLElBQUFBLEVBQUUsQ0FBQ0osRUFBSCxHQUFRQSxFQUFSO0FBQ0FJLElBQUFBLEVBQUUsQ0FBQ0UsR0FBSCxHQUFVLEdBQUVkLE1BQU8sSUFBR0UsTUFBTyw0QkFBN0I7O0FBQ0EsUUFBSU8sR0FBSixFQUFTO0FBQUE7O0FBQ1AseUJBQUFBLEdBQUcsQ0FBQ00sVUFBSixvRUFBZ0JDLFlBQWhCLENBQTZCSixFQUE3QixFQUFpQ0gsR0FBakM7QUFDRCxLQUZELE1BRU87QUFDTEgsTUFBQUEsQ0FBQyxDQUFDVyxJQUFGLENBQU9DLFdBQVAsQ0FBbUJOLEVBQW5CO0FBQ0Q7QUFDRixHQWRBLEVBY0VULE1BQU0sQ0FBQ2dCLFFBZFQsRUFjbUIsUUFkbkIsRUFjNkIsZ0JBZDdCOztBQWVELFNBQU8sSUFBUDtBQUNELENBbEJEO0FBbUJBOzs7QUFFQSxNQUFNQyxJQUFJLEdBQUcsQ0FBQztBQUNaQyxFQUFBQSxLQURZO0FBRVpuQixFQUFBQSxNQUFNLEdBQUcsT0FGRztBQUdab0IsRUFBQUEsUUFIWTtBQUlaQyxFQUFBQSxVQUFVLEdBQUcsTUFBTUMsU0FKUDtBQUtaQyxFQUFBQSxPQUFPLEdBQUcsTUFBTUQ7QUFMSixDQUFELEtBWUU7QUFDYixRQUFNRSxNQUFNLEdBQUd6QixVQUFVLENBQUNDLE1BQUQsQ0FBekIsQ0FEYSxDQUViOztBQUNBLE1BQUl3QixNQUFKLEVBQVk7QUFDVkgsSUFBQUEsVUFBVTs7QUFDVnBCLElBQUFBLE1BQU0sQ0FBQ3dCLFdBQVAsR0FBcUIsWUFBVztBQUM5QnhCLE1BQUFBLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVd0IsSUFBVixDQUNFQyxNQUFNLENBQUNDLE1BQVAsQ0FDRTtBQUNFQyxRQUFBQSxNQUFNLEVBQUUsSUFEVjtBQUVFQyxRQUFBQSxLQUFLLEVBQUUsSUFGVDtBQUdFQyxRQUFBQSxPQUFPLEVBQUU7QUFIWCxPQURGLEVBTUVaLEtBQUssR0FBRztBQUFFYSxRQUFBQSxLQUFLLEVBQUViO0FBQVQsT0FBSCxHQUFzQixFQU43QixDQURGO0FBVUFsQixNQUFBQSxNQUFNLENBQUNDLEVBQVAsQ0FBVStCLEtBQVYsQ0FBZ0JDLFNBQWhCLENBQTBCLG1CQUExQixFQUErQyxNQUM3QztBQUNBQyxNQUFBQSxVQUFVLENBQUMsTUFBTTtBQUNmZixRQUFBQSxRQUFRLENBQUMsVUFBRCxDQUFSO0FBQ0FHLFFBQUFBLE9BQU87QUFDUixPQUhTLEVBR1AsSUFITyxDQUZaO0FBT0QsS0FsQkQ7QUFtQkQ7O0FBRUQsU0FBT0MsTUFBUDtBQUNELENBdkNEOztBQXlDQSxNQUFNWSxJQUFJLEdBQUcsTUFBWTtBQUN2Qiw0QkFDRTtBQUFBOztBQUFBLFdBQU0sQ0FBQyxnQkFBQ25DLE1BQU0sQ0FBQ0MsRUFBUixnRUFBQyxXQUFXbUMsWUFBWixrREFBQyxzQkFBeUJDLElBQTFCLENBQVA7QUFBQSxHQURGLEVBRUU7QUFDQSxRQUFNSCxVQUFVLENBQUMsTUFBTWxDLE1BQU0sQ0FBQ0MsRUFBUCxDQUFVbUMsWUFBVixDQUF1QkMsSUFBdkIsQ0FBNEIsSUFBNUIsQ0FBUCxFQUEwQyxJQUExQyxDQUhsQjtBQUtELENBTkQ7O2VBUWU7QUFDYnhDLEVBQUFBLE1BRGE7QUFFYm9CLEVBQUFBLElBRmE7QUFHYmtCLEVBQUFBO0FBSGEsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgd2FpdEZvckxvYWQgZnJvbSAnLi4vdXRpbHMvd2FpdEZvckxvYWQnXG5cbmNvbnN0IGRvbWFpbiA9ICdodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0J1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBGQjogYW55XG4gICAgZmJBc3luY0luaXQ6ICgpID0+IHZvaWRcbiAgfVxufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuY29uc3QgbG9hZFNjcmlwdCA9IChsb2NhbGU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICBpZiAod2luZG93LkZCKSByZXR1cm4gZmFsc2VcbiAgOyhmdW5jdGlvbiBsb2FkRmFjZWJvb2tTREsoZCwgcywgaWQpIHtcbiAgICAvLyBmZXRjaCBjdXN0b21lcmNoYXQuanNcbiAgICBjb25zdCBmanMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdXG4gICAgaWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3QganMgPSBkLmNyZWF0ZUVsZW1lbnQocykgYXMgYW55XG4gICAganMuaWQgPSBpZFxuICAgIGpzLnNyYyA9IGAke2RvbWFpbn0vJHtsb2NhbGV9L3Nkay94ZmJtbC5jdXN0b21lcmNoYXQuanNgXG4gICAgaWYgKGZqcykge1xuICAgICAgZmpzLnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShqcywgZmpzKVxuICAgIH0gZWxzZSB7XG4gICAgICBkLmJvZHkuYXBwZW5kQ2hpbGQoanMpXG4gICAgfVxuICB9KSh3aW5kb3cuZG9jdW1lbnQsICdzY3JpcHQnLCAnZmFjZWJvb2stanNzZGsnKVxuICByZXR1cm4gdHJ1ZVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG5jb25zdCBsb2FkID0gKHtcbiAgYXBwSUQsXG4gIGxvY2FsZSA9ICdlbl9VUycsXG4gIHNldFN0YXRlLFxuICBiZWZvcmVJbml0ID0gKCkgPT4gdW5kZWZpbmVkLFxuICBvblJlYWR5ID0gKCkgPT4gdW5kZWZpbmVkXG59OiB7XG4gIGFwcElEPzogc3RyaW5nXG4gIGxvY2FsZT86IHN0cmluZ1xuICBzZXRTdGF0ZTogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBiZWZvcmVJbml0PzogKCkgPT4gdm9pZFxuICBvblJlYWR5PzogKCkgPT4gdm9pZFxufSk6IGJvb2xlYW4gPT4ge1xuICBjb25zdCBsb2FkZWQgPSBsb2FkU2NyaXB0KGxvY2FsZSlcbiAgLy8gQ29udGludWUgYXMgbG9uZyBhcyBtZXNzZW5nZXIgaGFzbuKAmXQgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLlxuICBpZiAobG9hZGVkKSB7XG4gICAgYmVmb3JlSW5pdCgpXG4gICAgd2luZG93LmZiQXN5bmNJbml0ID0gZnVuY3Rpb24oKSB7XG4gICAgICB3aW5kb3cuRkIuaW5pdChcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb29raWU6IHRydWUsXG4gICAgICAgICAgICB4ZmJtbDogdHJ1ZSxcbiAgICAgICAgICAgIHZlcnNpb246ICd2Ni4wJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgYXBwSUQgPyB7IGFwcElkOiBhcHBJRCB9IDoge31cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgd2luZG93LkZCLkV2ZW50LnN1YnNjcmliZSgnY3VzdG9tZXJjaGF0LmxvYWQnLCAoKSA9PlxuICAgICAgICAvLyBBbGxvdyBtZXNzZW5nZXIgdG8gY29tcGxldGUgbG9hZGluZyBiZWZvcmUgcmVtb3ZpbmcgZmFrZSB3aWRnZXRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgc2V0U3RhdGUoJ2NvbXBsZXRlJylcbiAgICAgICAgICBvblJlYWR5KClcbiAgICAgICAgfSwgMzAwMClcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9hZGVkXG59XG5cbmNvbnN0IG9wZW4gPSAoKTogdm9pZCA9PiB7XG4gIHdhaXRGb3JMb2FkKFxuICAgICgpID0+ICEhd2luZG93LkZCPy5DdXN0b21lckNoYXQ/LnNob3csXG4gICAgLy8gbWVzc2VuZ2VyIGlzIHNsb3cgdG8gc2hvdyBvbmNlIGl0IGhhcyBsb2FkZWRcbiAgICAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5GQi5DdXN0b21lckNoYXQuc2hvdyh0cnVlKSwgMjAwMClcbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGRvbWFpbixcbiAgbG9hZCxcbiAgb3BlblxufVxuIl19
;