react-live-chat-loader
Version:
Implement live chat in your react app without taking a performance hit.
82 lines (81 loc) • 10.9 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.domain = exports.default = void 0;
var _waitForLoad = _interopRequireDefault(require("../utils/waitForLoad"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
var domain = exports.domain = 'js.hs-scripts.com';
var isHubspotWidgetDefined = function isHubspotWidgetDefined() {
return window.HubSpotConversations && window.HubSpotConversations.widget;
};
var loadScript = function loadScript(hsId) {
// Detect the provider is already loaded and return early
if (window.HubSpotConversations) {
return false;
}
(function loadHubSpotSDK(d, s, id) {
// fetch customerchat.js
var fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
//eslint-disable-next-line @typescript-eslint/no-explicit-any
var js = d.createElement(s);
js.id = id;
js.src = "https://".concat(domain, "/").concat(hsId, ".js");
js.type = 'text/javascript';
js.async = 1;
js.defer = 1;
if (fjs) {
var _fjs$parentNode;
(_fjs$parentNode = fjs.parentNode) === null || _fjs$parentNode === void 0 || _fjs$parentNode.insertBefore(js, fjs);
} else {
d.body.appendChild(js);
}
})(window.document, 'script', 'hs-script-loader');
return true;
};
var load = function load(_ref) {
var providerKey = _ref.providerKey,
setState = _ref.setState,
_ref$beforeInit = _ref.beforeInit,
beforeInit = _ref$beforeInit === void 0 ? function () {
return undefined;
} : _ref$beforeInit,
_ref$onReady = _ref.onReady,
onReady = _ref$onReady === void 0 ? function () {
return undefined;
} : _ref$onReady;
window.hsConversationsOnReady = [function () {
isHubspotWidgetDefined() && window.HubSpotConversations.widget.load();
}];
var loaded = loadScript(providerKey);
if (loaded) {
beforeInit();
(0, _waitForLoad.default)(function () {
return Boolean(isHubspotWidgetDefined() && window.HubSpotConversations.widget.status().loaded);
},
// Allow hubspot to complete loading before removing fake widget
function () {
isHubspotWidgetDefined() && window.HubSpotConversations.widget.open();
setState('complete');
onReady();
});
}
return loaded;
};
var open = function open() {
isHubspotWidgetDefined() && !window.HubSpotConversations.widget.status().loaded && window.HubSpotConversations.widget.load();
return isHubspotWidgetDefined() && window.HubSpotConversations.widget.open();
}; // Open provider
var close = function close() {
return isHubspotWidgetDefined() && window.HubSpotConversations.widget.close();
}; // Close provider
var _default = exports.default = {
load: load,
open: open,
close: close,
domain: domain
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2FpdEZvckxvYWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImRvbWFpbiIsImV4cG9ydHMiLCJpc0h1YnNwb3RXaWRnZXREZWZpbmVkIiwid2luZG93IiwiSHViU3BvdENvbnZlcnNhdGlvbnMiLCJ3aWRnZXQiLCJsb2FkU2NyaXB0IiwiaHNJZCIsImxvYWRIdWJTcG90U0RLIiwiZCIsInMiLCJpZCIsImZqcyIsImdldEVsZW1lbnRzQnlUYWdOYW1lIiwiZ2V0RWxlbWVudEJ5SWQiLCJqcyIsImNyZWF0ZUVsZW1lbnQiLCJzcmMiLCJjb25jYXQiLCJ0eXBlIiwiYXN5bmMiLCJkZWZlciIsIl9manMkcGFyZW50Tm9kZSIsInBhcmVudE5vZGUiLCJpbnNlcnRCZWZvcmUiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJkb2N1bWVudCIsImxvYWQiLCJfcmVmIiwicHJvdmlkZXJLZXkiLCJzZXRTdGF0ZSIsIl9yZWYkYmVmb3JlSW5pdCIsImJlZm9yZUluaXQiLCJ1bmRlZmluZWQiLCJfcmVmJG9uUmVhZHkiLCJvblJlYWR5IiwiaHNDb252ZXJzYXRpb25zT25SZWFkeSIsImxvYWRlZCIsIndhaXRGb3JMb2FkIiwiQm9vbGVhbiIsInN0YXR1cyIsIm9wZW4iLCJjbG9zZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVycy9odWJTcG90LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgd2FpdEZvckxvYWQgZnJvbSAnLi4vdXRpbHMvd2FpdEZvckxvYWQnXG5cbmV4cG9ydCBjb25zdCBkb21haW4gPSAnanMuaHMtc2NyaXB0cy5jb20nXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBIdWJTcG90Q29udmVyc2F0aW9uczogYW55XG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGhzQ29udmVyc2F0aW9uc1NldHRpbmdzOiBhbnlcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgaHNDb252ZXJzYXRpb25zT25SZWFkeTogYW55XG4gIH1cbn1cblxuY29uc3QgaXNIdWJzcG90V2lkZ2V0RGVmaW5lZCA9ICgpID0+IHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucyAmJiB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0O1xuXG5jb25zdCBsb2FkU2NyaXB0ID0gKGhzSWQ6IHN0cmluZykgPT4ge1xuICAvLyBEZXRlY3QgdGhlIHByb3ZpZGVyIGlzIGFscmVhZHkgbG9hZGVkIGFuZCByZXR1cm4gZWFybHlcbiAgaWYgKHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIChmdW5jdGlvbiBsb2FkSHViU3BvdFNESyhkLCBzLCBpZCkge1xuICAgIC8vIGZldGNoIGN1c3RvbWVyY2hhdC5qc1xuICAgIGNvbnN0IGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF1cbiAgICBpZiAoZC5nZXRFbGVtZW50QnlJZChpZCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QganMgPSBkLmNyZWF0ZUVsZW1lbnQocykgYXMgYW55XG4gICAganMuaWQgPSBpZFxuICAgIGpzLnNyYyA9IGBodHRwczovLyR7ZG9tYWlufS8ke2hzSWR9LmpzYFxuICAgIGpzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0J1xuICAgIGpzLmFzeW5jID0gMVxuICAgIGpzLmRlZmVyID0gMVxuICAgIGlmIChmanMpIHtcbiAgICAgIGZqcy5wYXJlbnROb2RlPy5pbnNlcnRCZWZvcmUoanMsIGZqcylcbiAgICB9IGVsc2Uge1xuICAgICAgZC5ib2R5LmFwcGVuZENoaWxkKGpzKVxuICAgIH1cbiAgfSkod2luZG93LmRvY3VtZW50LCAnc2NyaXB0JywgJ2hzLXNjcmlwdC1sb2FkZXInKVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmNvbnN0IGxvYWQgPSAoe1xuICBwcm92aWRlcktleSxcbiAgc2V0U3RhdGUsXG4gIGJlZm9yZUluaXQgPSAoKSA9PiB1bmRlZmluZWQsXG4gIG9uUmVhZHkgPSAoKSA9PiB1bmRlZmluZWQsXG59OiB7XG4gIHByb3ZpZGVyS2V5OiBzdHJpbmdcbiAgc2V0U3RhdGU6IChzdGF0ZTogU3RhdGUpID0+IHZvaWRcbiAgYmVmb3JlSW5pdD86ICgpID0+IHZvaWRcbiAgb25SZWFkeT86ICgpID0+IHZvaWRcbn0pOiBib29sZWFuID0+IHtcbiAgd2luZG93LmhzQ29udmVyc2F0aW9uc09uUmVhZHkgPSBbXG4gICAgKCkgPT4ge1xuICAgICAgaXNIdWJzcG90V2lkZ2V0RGVmaW5lZCgpICYmIHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucy53aWRnZXQubG9hZCgpXG4gICAgfVxuICBdXG4gIGNvbnN0IGxvYWRlZCA9IGxvYWRTY3JpcHQocHJvdmlkZXJLZXkpXG4gIGlmIChsb2FkZWQpIHtcbiAgICBiZWZvcmVJbml0KClcblxuICAgIHdhaXRGb3JMb2FkKFxuICAgICAgKCkgPT4ge1xuICAgICAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgICAgICBpc0h1YnNwb3RXaWRnZXREZWZpbmVkKCkgJiZcbiAgICAgICAgICAgIHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucy53aWRnZXQuc3RhdHVzKCkubG9hZGVkXG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICAvLyBBbGxvdyBodWJzcG90IHRvIGNvbXBsZXRlIGxvYWRpbmcgYmVmb3JlIHJlbW92aW5nIGZha2Ugd2lkZ2V0XG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlzSHVic3BvdFdpZGdldERlZmluZWQoKSAmJiB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0Lm9wZW4oKVxuICAgICAgICBzZXRTdGF0ZSgnY29tcGxldGUnKVxuICAgICAgICBvblJlYWR5KClcbiAgICAgIH1cbiAgICApXG4gIH1cbiAgcmV0dXJuIGxvYWRlZFxufVxuXG5jb25zdCBvcGVuID0gKCk6IHVua25vd24gPT4ge1xuICBpc0h1YnNwb3RXaWRnZXREZWZpbmVkKCkgJiYgXG4gICAgIXdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucy53aWRnZXQuc3RhdHVzKCkubG9hZGVkICYmXG4gICAgd2luZG93Lkh1YlNwb3RDb252ZXJzYXRpb25zLndpZGdldC5sb2FkKClcblxuICByZXR1cm4gKFxuICAgIGlzSHVic3BvdFdpZGdldERlZmluZWQoKSAmJiBcbiAgICB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0Lm9wZW4oKVxuICApXG59IC8vIE9wZW4gcHJvdmlkZXJcbmNvbnN0IGNsb3NlID0gKCk6IHVua25vd24gPT4gaXNIdWJzcG90V2lkZ2V0RGVmaW5lZCgpICYmIHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucy53aWRnZXQuY2xvc2UoKSAvLyBDbG9zZSBwcm92aWRlclxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGxvYWQsXG4gIG9wZW4sXG4gIGNsb3NlLFxuICBkb21haW5cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsWUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQThDLFNBQUFELHVCQUFBRSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXZDLElBQU1HLE1BQU0sR0FBQUMsT0FBQSxDQUFBRCxNQUFBLEdBQUcsbUJBQW1CO0FBWXpD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
;