UNPKG

tb-react-live-chat-loader

Version:

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

60 lines (49 loc) 6.13 kB
import waitForLoad from "../utils/waitForLoad"; const domain = 'https://userlike-cdn-widgets.s3-eu-west-1.amazonaws.com'; /* eslint-disable */ const loadScript = providerKey => { if (window.userlike) return false; var d = document; function l() { var _x$parentNode; var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = `${domain}/${providerKey}.js`; var x = d.getElementsByTagName('script')[0]; (_x$parentNode = x.parentNode) === null || _x$parentNode === void 0 ? void 0 : _x$parentNode.insertBefore(s, x); } l(); return true; }; /* eslint-enable */ const load = ({ providerKey, setState, beforeInit = () => undefined, onReady = () => undefined }) => { const loaded = loadScript(providerKey); // Continue as long as userlike hasn’t already been initialised. if (loaded) { beforeInit(); waitForLoad(() => !!window.userlike, // Allow userlike to complete loading before removing fake widget () => setTimeout(() => { setState('complete'); onReady(); }, 2000)); } return true; }; const open = () => { waitForLoad(() => { var _window$userlike; return !!((_window$userlike = window.userlike) !== null && _window$userlike !== void 0 && _window$userlike.userlikeStartChat); }, // userlike is slow to show once it has loaded () => setTimeout(window.userlike.userlikeStartChat, 1000)); }; export default { domain, load, open }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aWRlcnMvdXNlcmxpa2UudHMiXSwibmFtZXMiOlsid2FpdEZvckxvYWQiLCJkb21haW4iLCJsb2FkU2NyaXB0IiwicHJvdmlkZXJLZXkiLCJ3aW5kb3ciLCJ1c2VybGlrZSIsImQiLCJkb2N1bWVudCIsImwiLCJzIiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJhc3luYyIsInNyYyIsIngiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInBhcmVudE5vZGUiLCJpbnNlcnRCZWZvcmUiLCJsb2FkIiwic2V0U3RhdGUiLCJiZWZvcmVJbml0IiwidW5kZWZpbmVkIiwib25SZWFkeSIsImxvYWRlZCIsInNldFRpbWVvdXQiLCJvcGVuIiwidXNlcmxpa2VTdGFydENoYXQiXSwibWFwcGluZ3MiOiJBQUNBLE9BQU9BLFdBQVA7QUFFQSxNQUFNQyxNQUFNLEdBQUcseURBQWY7O0FBYUE7QUFDQSxNQUFNQyxVQUFVLEdBQUlDLFdBQUQsSUFBa0M7QUFDbkQsTUFBSUMsTUFBTSxDQUFDQyxRQUFYLEVBQXFCLE9BQU8sS0FBUDtBQUVyQixNQUFJQyxDQUFDLEdBQUdDLFFBQVI7O0FBQ0EsV0FBU0MsQ0FBVCxHQUFhO0FBQUE7O0FBQ1gsUUFBSUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNJLGFBQUYsQ0FBZ0IsUUFBaEIsQ0FBUjtBQUNBRCxJQUFBQSxDQUFDLENBQUNFLElBQUYsR0FBUyxpQkFBVDtBQUNBRixJQUFBQSxDQUFDLENBQUNHLEtBQUYsR0FBVSxJQUFWO0FBQ0FILElBQUFBLENBQUMsQ0FBQ0ksR0FBRixHQUFTLEdBQUVaLE1BQU8sSUFBR0UsV0FBWSxLQUFqQztBQUNBLFFBQUlXLENBQUMsR0FBR1IsQ0FBQyxDQUFDUyxvQkFBRixDQUF1QixRQUF2QixFQUFpQyxDQUFqQyxDQUFSO0FBQ0EscUJBQUFELENBQUMsQ0FBQ0UsVUFBRixnRUFBY0MsWUFBZCxDQUEyQlIsQ0FBM0IsRUFBOEJLLENBQTlCO0FBQ0Q7O0FBQ0ROLEVBQUFBLENBQUM7QUFFRCxTQUFPLElBQVA7QUFDRCxDQWZEO0FBZ0JBOzs7QUFFQSxNQUFNVSxJQUFJLEdBQUcsQ0FBQztBQUNaZixFQUFBQSxXQURZO0FBRVpnQixFQUFBQSxRQUZZO0FBR1pDLEVBQUFBLFVBQVUsR0FBRyxNQUFNQyxTQUhQO0FBSVpDLEVBQUFBLE9BQU8sR0FBRyxNQUFNRDtBQUpKLENBQUQsS0FVRTtBQUNiLFFBQU1FLE1BQU0sR0FBR3JCLFVBQVUsQ0FBQ0MsV0FBRCxDQUF6QixDQURhLENBRWI7O0FBQ0EsTUFBSW9CLE1BQUosRUFBWTtBQUNWSCxJQUFBQSxVQUFVO0FBQ1ZwQixJQUFBQSxXQUFXLENBQ1QsTUFBTSxDQUFDLENBQUNJLE1BQU0sQ0FBQ0MsUUFETixFQUVUO0FBQ0EsVUFDRW1CLFVBQVUsQ0FBQyxNQUFNO0FBQ2ZMLE1BQUFBLFFBQVEsQ0FBQyxVQUFELENBQVI7QUFDQUcsTUFBQUEsT0FBTztBQUNSLEtBSFMsRUFHUCxJQUhPLENBSkgsQ0FBWDtBQVNEOztBQUVELFNBQU8sSUFBUDtBQUNELENBM0JEOztBQTZCQSxNQUFNRyxJQUFJLEdBQUcsTUFBWTtBQUN2QnpCLEVBQUFBLFdBQVcsQ0FDVDtBQUFBOztBQUFBLFdBQU0sQ0FBQyxzQkFBQ0ksTUFBTSxDQUFDQyxRQUFSLDZDQUFDLGlCQUFpQnFCLGlCQUFsQixDQUFQO0FBQUEsR0FEUyxFQUVUO0FBQ0EsUUFBTUYsVUFBVSxDQUFDcEIsTUFBTSxDQUFDQyxRQUFQLENBQWdCcUIsaUJBQWpCLEVBQW9DLElBQXBDLENBSFAsQ0FBWDtBQUtELENBTkQ7O0FBUUEsZUFBZTtBQUNiekIsRUFBQUEsTUFEYTtBQUViaUIsRUFBQUEsSUFGYTtBQUdiTyxFQUFBQTtBQUhhLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHdhaXRGb3JMb2FkIGZyb20gJy4uL3V0aWxzL3dhaXRGb3JMb2FkJ1xuXG5jb25zdCBkb21haW4gPSAnaHR0cHM6Ly91c2VybGlrZS1jZG4td2lkZ2V0cy5zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSdcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvL2VzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgdXNlcmxpa2U6IHtcbiAgICAgIHVzZXJsaWtlUmVhZHk6ICgpID0+IHZvaWRcbiAgICAgIHVzZXJsaWtlU3RhcnRDaGF0OiAoKSA9PiB2b2lkXG4gICAgICB1c2VybGlrZVF1aXRDaGF0OiAoKSA9PiB2b2lkXG4gICAgfVxuICB9XG59XG5cbi8qIGVzbGludC1kaXNhYmxlICovXG5jb25zdCBsb2FkU2NyaXB0ID0gKHByb3ZpZGVyS2V5OiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgaWYgKHdpbmRvdy51c2VybGlrZSkgcmV0dXJuIGZhbHNlXG5cbiAgdmFyIGQgPSBkb2N1bWVudFxuICBmdW5jdGlvbiBsKCkge1xuICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKVxuICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnXG4gICAgcy5hc3luYyA9IHRydWVcbiAgICBzLnNyYyA9IGAke2RvbWFpbn0vJHtwcm92aWRlcktleX0uanNgXG4gICAgdmFyIHggPSBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXVxuICAgIHgucGFyZW50Tm9kZT8uaW5zZXJ0QmVmb3JlKHMsIHgpXG4gIH1cbiAgbCgpXG5cbiAgcmV0dXJuIHRydWVcbn1cbi8qIGVzbGludC1lbmFibGUgKi9cblxuY29uc3QgbG9hZCA9ICh7XG4gIHByb3ZpZGVyS2V5LFxuICBzZXRTdGF0ZSxcbiAgYmVmb3JlSW5pdCA9ICgpID0+IHVuZGVmaW5lZCxcbiAgb25SZWFkeSA9ICgpID0+IHVuZGVmaW5lZFxufToge1xuICBwcm92aWRlcktleTogc3RyaW5nXG4gIHNldFN0YXRlOiAoc3RhdGU6IFN0YXRlKSA9PiB2b2lkXG4gIGJlZm9yZUluaXQ/OiAoKSA9PiB2b2lkXG4gIG9uUmVhZHk/OiAoKSA9PiB2b2lkXG59KTogYm9vbGVhbiA9PiB7XG4gIGNvbnN0IGxvYWRlZCA9IGxvYWRTY3JpcHQocHJvdmlkZXJLZXkpXG4gIC8vIENvbnRpbnVlIGFzIGxvbmcgYXMgdXNlcmxpa2UgaGFzbuKAmXQgYWxyZWFkeSBiZWVuIGluaXRpYWxpc2VkLlxuICBpZiAobG9hZGVkKSB7XG4gICAgYmVmb3JlSW5pdCgpXG4gICAgd2FpdEZvckxvYWQoXG4gICAgICAoKSA9PiAhIXdpbmRvdy51c2VybGlrZSxcbiAgICAgIC8vIEFsbG93IHVzZXJsaWtlIHRvIGNvbXBsZXRlIGxvYWRpbmcgYmVmb3JlIHJlbW92aW5nIGZha2Ugd2lkZ2V0XG4gICAgICAoKSA9PlxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBzZXRTdGF0ZSgnY29tcGxldGUnKVxuICAgICAgICAgIG9uUmVhZHkoKVxuICAgICAgICB9LCAyMDAwKVxuICAgIClcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmNvbnN0IG9wZW4gPSAoKTogdm9pZCA9PiB7XG4gIHdhaXRGb3JMb2FkKFxuICAgICgpID0+ICEhd2luZG93LnVzZXJsaWtlPy51c2VybGlrZVN0YXJ0Q2hhdCxcbiAgICAvLyB1c2VybGlrZSBpcyBzbG93IHRvIHNob3cgb25jZSBpdCBoYXMgbG9hZGVkXG4gICAgKCkgPT4gc2V0VGltZW91dCh3aW5kb3cudXNlcmxpa2UudXNlcmxpa2VTdGFydENoYXQsIDEwMDApXG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBkb21haW4sXG4gIGxvYWQsXG4gIG9wZW5cbn1cbiJdfQ==