UNPKG

react-live-chat-loader

Version:

Implement live chat in your react app without taking a performance hit.

76 lines (75 loc) 10.3 kB
import waitForLoad from "../utils/waitForLoad"; export var 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(); waitForLoad(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 export default { load: load, open: open, close: close, domain: domain }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ3YWl0Rm9yTG9hZCIsImRvbWFpbiIsImlzSHVic3BvdFdpZGdldERlZmluZWQiLCJ3aW5kb3ciLCJIdWJTcG90Q29udmVyc2F0aW9ucyIsIndpZGdldCIsImxvYWRTY3JpcHQiLCJoc0lkIiwibG9hZEh1YlNwb3RTREsiLCJkIiwicyIsImlkIiwiZmpzIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJnZXRFbGVtZW50QnlJZCIsImpzIiwiY3JlYXRlRWxlbWVudCIsInNyYyIsImNvbmNhdCIsInR5cGUiLCJhc3luYyIsImRlZmVyIiwiX2ZqcyRwYXJlbnROb2RlIiwicGFyZW50Tm9kZSIsImluc2VydEJlZm9yZSIsImJvZHkiLCJhcHBlbmRDaGlsZCIsImRvY3VtZW50IiwibG9hZCIsIl9yZWYiLCJwcm92aWRlcktleSIsInNldFN0YXRlIiwiX3JlZiRiZWZvcmVJbml0IiwiYmVmb3JlSW5pdCIsInVuZGVmaW5lZCIsIl9yZWYkb25SZWFkeSIsIm9uUmVhZHkiLCJoc0NvbnZlcnNhdGlvbnNPblJlYWR5IiwibG9hZGVkIiwiQm9vbGVhbiIsInN0YXR1cyIsIm9wZW4iLCJjbG9zZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvaHViU3BvdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHdhaXRGb3JMb2FkIGZyb20gJy4uL3V0aWxzL3dhaXRGb3JMb2FkJ1xuXG5leHBvcnQgY29uc3QgZG9tYWluID0gJ2pzLmhzLXNjcmlwdHMuY29tJ1xuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgSHViU3BvdENvbnZlcnNhdGlvbnM6IGFueVxuICAgIC8vZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBoc0NvbnZlcnNhdGlvbnNTZXR0aW5nczogYW55XG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGhzQ29udmVyc2F0aW9uc09uUmVhZHk6IGFueVxuICB9XG59XG5cbmNvbnN0IGlzSHVic3BvdFdpZGdldERlZmluZWQgPSAoKSA9PiB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMgJiYgd2luZG93Lkh1YlNwb3RDb252ZXJzYXRpb25zLndpZGdldDtcblxuY29uc3QgbG9hZFNjcmlwdCA9IChoc0lkOiBzdHJpbmcpID0+IHtcbiAgLy8gRGV0ZWN0IHRoZSBwcm92aWRlciBpcyBhbHJlYWR5IGxvYWRlZCBhbmQgcmV0dXJuIGVhcmx5XG4gIGlmICh3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICAoZnVuY3Rpb24gbG9hZEh1YlNwb3RTREsoZCwgcywgaWQpIHtcbiAgICAvLyBmZXRjaCBjdXN0b21lcmNoYXQuanNcbiAgICBjb25zdCBmanMgPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdXG4gICAgaWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGpzID0gZC5jcmVhdGVFbGVtZW50KHMpIGFzIGFueVxuICAgIGpzLmlkID0gaWRcbiAgICBqcy5zcmMgPSBgaHR0cHM6Ly8ke2RvbWFpbn0vJHtoc0lkfS5qc2BcbiAgICBqcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCdcbiAgICBqcy5hc3luYyA9IDFcbiAgICBqcy5kZWZlciA9IDFcbiAgICBpZiAoZmpzKSB7XG4gICAgICBmanMucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKGpzLCBmanMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGQuYm9keS5hcHBlbmRDaGlsZChqcylcbiAgICB9XG4gIH0pKHdpbmRvdy5kb2N1bWVudCwgJ3NjcmlwdCcsICdocy1zY3JpcHQtbG9hZGVyJylcblxuICByZXR1cm4gdHJ1ZVxufVxuXG5jb25zdCBsb2FkID0gKHtcbiAgcHJvdmlkZXJLZXksXG4gIHNldFN0YXRlLFxuICBiZWZvcmVJbml0ID0gKCkgPT4gdW5kZWZpbmVkLFxuICBvblJlYWR5ID0gKCkgPT4gdW5kZWZpbmVkLFxufToge1xuICBwcm92aWRlcktleTogc3RyaW5nXG4gIHNldFN0YXRlOiAoc3RhdGU6IFN0YXRlKSA9PiB2b2lkXG4gIGJlZm9yZUluaXQ/OiAoKSA9PiB2b2lkXG4gIG9uUmVhZHk/OiAoKSA9PiB2b2lkXG59KTogYm9vbGVhbiA9PiB7XG4gIHdpbmRvdy5oc0NvbnZlcnNhdGlvbnNPblJlYWR5ID0gW1xuICAgICgpID0+IHtcbiAgICAgIGlzSHVic3BvdFdpZGdldERlZmluZWQoKSAmJiB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0LmxvYWQoKVxuICAgIH1cbiAgXVxuICBjb25zdCBsb2FkZWQgPSBsb2FkU2NyaXB0KHByb3ZpZGVyS2V5KVxuICBpZiAobG9hZGVkKSB7XG4gICAgYmVmb3JlSW5pdCgpXG5cbiAgICB3YWl0Rm9yTG9hZChcbiAgICAgICgpID0+IHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgICAgaXNIdWJzcG90V2lkZ2V0RGVmaW5lZCgpICYmXG4gICAgICAgICAgICB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0LnN0YXR1cygpLmxvYWRlZFxuICAgICAgICApXG4gICAgICB9LFxuICAgICAgLy8gQWxsb3cgaHVic3BvdCB0byBjb21wbGV0ZSBsb2FkaW5nIGJlZm9yZSByZW1vdmluZyBmYWtlIHdpZGdldFxuICAgICAgKCkgPT4ge1xuICAgICAgICBpc0h1YnNwb3RXaWRnZXREZWZpbmVkKCkgJiYgd2luZG93Lkh1YlNwb3RDb252ZXJzYXRpb25zLndpZGdldC5vcGVuKClcbiAgICAgICAgc2V0U3RhdGUoJ2NvbXBsZXRlJylcbiAgICAgICAgb25SZWFkeSgpXG4gICAgICB9XG4gICAgKVxuICB9XG4gIHJldHVybiBsb2FkZWRcbn1cblxuY29uc3Qgb3BlbiA9ICgpOiB1bmtub3duID0+IHtcbiAgaXNIdWJzcG90V2lkZ2V0RGVmaW5lZCgpICYmIFxuICAgICF3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0LnN0YXR1cygpLmxvYWRlZCAmJlxuICAgIHdpbmRvdy5IdWJTcG90Q29udmVyc2F0aW9ucy53aWRnZXQubG9hZCgpXG5cbiAgcmV0dXJuIChcbiAgICBpc0h1YnNwb3RXaWRnZXREZWZpbmVkKCkgJiYgXG4gICAgd2luZG93Lkh1YlNwb3RDb252ZXJzYXRpb25zLndpZGdldC5vcGVuKClcbiAgKVxufSAvLyBPcGVuIHByb3ZpZGVyXG5jb25zdCBjbG9zZSA9ICgpOiB1bmtub3duID0+IGlzSHVic3BvdFdpZGdldERlZmluZWQoKSAmJiB3aW5kb3cuSHViU3BvdENvbnZlcnNhdGlvbnMud2lkZ2V0LmNsb3NlKCkgLy8gQ2xvc2UgcHJvdmlkZXJcblxuZXhwb3J0IGRlZmF1bHQge1xuICBsb2FkLFxuICBvcGVuLFxuICBjbG9zZSxcbiAgZG9tYWluXG59XG4iXSwibWFwcGluZ3MiOiJBQUNBLE9BQU9BLFdBQVc7QUFFbEIsT0FBTyxJQUFNQyxNQUFNLEdBQUcsbUJBQW1CO0FBWXpDLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBc0JBLENBQUE7RUFBQSxPQUFTQyxNQUFNLENBQUNDLG9CQUFvQixJQUFJRCxNQUFNLENBQUNDLG9CQUFvQixDQUFDQyxNQUFNO0FBQUE7QUFFdEcsSUFBTUMsVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQUlDLElBQVksRUFBSztFQUNuQztFQUNBLElBQUlKLE1BQU0sQ0FBQ0Msb0JBQW9CLEVBQUU7SUFDL0IsT0FBTyxLQUFLO0VBQ2Q7RUFDQSxDQUFDLFNBQVNJ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