Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
"use strict";

var _regeneratorRuntime2 = require("@babel/runtime/regenerator");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports["default"] = loadIntercomSaga;

var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));

var _effects = require("redux-saga/effects");

var _intercomActions = require("../actions/intercomActions");

var _script = require("../../utils/script");

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

var _marked = /*#__PURE__*/_regeneratorRuntime2.mark(onBoot),
    _marked2 = /*#__PURE__*/_regeneratorRuntime2.mark(onShutdown),
    _marked3 = /*#__PURE__*/_regeneratorRuntime2.mark(onTrackEvent),
    _marked4 = /*#__PURE__*/_regeneratorRuntime2.mark(onUpdate),
    _marked5 = /*#__PURE__*/_regeneratorRuntime2.mark(onInstall),
    _marked6 = /*#__PURE__*/_regeneratorRuntime2.mark(onUninstall),
    _marked7 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForBoot),
    _marked8 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForShutdown),
    _marked9 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForUpdate),
    _marked10 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForTrackEvent),
    _marked11 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForInstall),
    _marked12 = /*#__PURE__*/_regeneratorRuntime2.mark(watchForUninstall),
    _marked13 = /*#__PURE__*/_regeneratorRuntime2.mark(loadIntercomSaga);

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? Object(arguments[i]) : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function onBoot(options, _ref) {
  var payload, app_id, _yield$select, isInstalled;

  return _regenerator["default"].wrap(function onBoot$(_context) {
    while (1) {
      switch (_context.prev = _context.next) {
        case 0:
          payload = _ref.payload;
          // eslint-disable-next-line camelcase
          app_id = options.intercomAppId;
          _context.next = 4;
          return (0, _effects.select)(function (state) {
            return state[options.intercomDomain || 'intercom'];
          });

        case 4:
          _yield$select = _context.sent;
          isInstalled = _yield$select.installed;

          if (isInstalled) {
            _context.next = 9;
            break;
          }

          console.warn('Intercom is not installed.');
          return _context.abrupt("return");

        case 9:
          if (window.Intercom) {
            window.Intercom('boot', _objectSpread({
              app_id: app_id
            }, payload));
          }

        case 10:
        case "end":
          return _context.stop();
      }
    }
  }, _marked);
}

function onShutdown(options) {
  var _yield$select2, isInstalled;

  return _regenerator["default"].wrap(function onShutdown$(_context2) {
    while (1) {
      switch (_context2.prev = _context2.next) {
        case 0:
          _context2.next = 2;
          return (0, _effects.select)(function (state) {
            return state[options.intercomDomain || 'intercom'];
          });

        case 2:
          _yield$select2 = _context2.sent;
          isInstalled = _yield$select2.installed;

          if (isInstalled) {
            _context2.next = 7;
            break;
          }

          console.warn('Intercom is not installed.');
          return _context2.abrupt("return");

        case 7:
          if (window.Intercom) {
            window.Intercom('shutdown');
          }

        case 8:
        case "end":
          return _context2.stop();
      }
    }
  }, _marked2);
}

function onTrackEvent(options, _ref2) {
  var payload, event, metadata, _yield$select3, booted, isInstalled;

  return _regenerator["default"].wrap(function onTrackEvent$(_context3) {
    while (1) {
      switch (_context3.prev = _context3.next) {
        case 0:
          payload = _ref2.payload;
          event = payload.event, metadata = payload.metadata;
          _context3.next = 4;
          return (0, _effects.select)(function (state) {
            return state[options.intercomDomain || 'intercom'];
          });

        case 4:
          _yield$select3 = _context3.sent;
          booted = _yield$select3.booted;
          isInstalled = _yield$select3.installed;

          if (isInstalled) {
            _context3.next = 10;
            break;
          }

          console.warn('Intercom is not installed.');
          return _context3.abrupt("return");

        case 10:
          if (booted) {
            _context3.next = 13;
            break;
          }

          console.warn('Intercom is not yet booted.');
          return _context3.abrupt("return");

        case 13:
          if (window.Intercom) {
            window.Intercom('trackEvent', event, _objectSpread({}, metadata));
          }

        case 14:
        case "end":
          return _context3.stop();
      }
    }
  }, _marked3);
}

function onUpdate(options, _ref3) {
  var payload, _yield$select4, booted, isInstalled;

  return _regenerator["default"].wrap(function onUpdate$(_context4) {
    while (1) {
      switch (_context4.prev = _context4.next) {
        case 0:
          payload = _ref3.payload;
          _context4.next = 3;
          return (0, _effects.select)(function (state) {
            return state[options.intercomDomain || 'intercom'];
          });

        case 3:
          _yield$select4 = _context4.sent;
          booted = _yield$select4.booted;
          isInstalled = _yield$select4.installed;

          if (isInstalled) {
            _context4.next = 9;
            break;
          }

          console.warn('Intercom is not installed.');
          return _context4.abrupt("return");

        case 9:
          if (booted) {
            _context4.next = 12;
            break;
          }

          console.warn('Intercom is not yet booted.');
          return _context4.abrupt("return");

        case 12:
          if (window.Intercom) {
            window.Intercom('update', _objectSpread({}, payload));
          }

        case 13:
        case "end":
          return _context4.stop();
      }
    }
  }, _marked4);
}

function onInstall(options) {
  var intercomAppId;
  return _regenerator["default"].wrap(function onInstall$(_context5) {
    while (1) {
      switch (_context5.prev = _context5.next) {
        case 0:
          intercomAppId = options.intercomAppId;
          _context5.next = 3;
          return (0, _effects.call)(_script.installScript, intercomAppId);

        case 3:
          _context5.next = 5;
          return (0, _effects.put)((0, _intercomActions.installed)());

        case 5:
        case "end":
          return _context5.stop();
      }
    }
  }, _marked5);
}

function onUninstall(options) {
  var intercomAppId;
  return _regenerator["default"].wrap(function onUninstall$(_context6) {
    while (1) {
      switch (_context6.prev = _context6.next) {
        case 0:
          intercomAppId = options.intercomAppId;
          _context6.next = 3;
          return (0, _effects.call)(_script.uninstallScript, intercomAppId);

        case 3:
          _context6.next = 5;
          return (0, _effects.put)((0, _intercomActions.uninstalled)());

        case 5:
        case "end":
          return _context6.stop();
      }
    }
  }, _marked6);
}

function watchForBoot(options) {
  return _regenerator["default"].wrap(function watchForBoot$(_context7) {
    while (1) {
      switch (_context7.prev = _context7.next) {
        case 0:
          _context7.next = 2;
          return (0, _effects.takeLatest)(_intercomActions.ActionTypes.BOOT, onBoot, options);

        case 2:
        case "end":
          return _context7.stop();
      }
    }
  }, _marked7);
}

function watchForShutdown(options) {
  return _regenerator["default"].wrap(function watchForShutdown$(_context8) {
    while (1) {
      switch (_context8.prev = _context8.next) {
        case 0:
          _context8.next = 2;
          return (0, _effects.takeLatest)(_intercomActions.ActionTypes.SHUTDOWN, onShutdown, options);

        case 2:
        case "end":
          return _context8.stop();
      }
    }
  }, _marked8);
}

function watchForUpdate(options) {
  return _regenerator["default"].wrap(function watchForUpdate$(_context9) {
    while (1) {
      switch (_context9.prev = _context9.next) {
        case 0:
          _context9.next = 2;
          return (0, _effects.takeLatest)(_intercomActions.ActionTypes.UPDATE, onUpdate, options);

        case 2:
        case "end":
          return _context9.stop();
      }
    }
  }, _marked9);
}

function watchForTrackEvent(options) {
  return _regenerator["default"].wrap(function watchForTrackEvent$(_context10) {
    while (1) {
      switch (_context10.prev = _context10.next) {
        case 0:
          _context10.next = 2;
          return (0, _effects.takeEvery)(_intercomActions.ActionTypes.TRACK_EVENT, onTrackEvent, options);

        case 2:
        case "end":
          return _context10.stop();
      }
    }
  }, _marked10);
}

function watchForInstall(options) {
  return _regenerator["default"].wrap(function watchForInstall$(_context11) {
    while (1) {
      switch (_context11.prev = _context11.next) {
        case 0:
          _context11.next = 2;
          return (0, _effects.takeLatest)(_intercomActions.ActionTypes.INSTALL, onInstall, options);

        case 2:
        case "end":
          return _context11.stop();
      }
    }
  }, _marked11);
}

function watchForUninstall(options) {
  return _regenerator["default"].wrap(function watchForUninstall$(_context12) {
    while (1) {
      switch (_context12.prev = _context12.next) {
        case 0:
          _context12.next = 2;
          return (0, _effects.takeLatest)(_intercomActions.ActionTypes.UNINSTALL, onUninstall, options);

        case 2:
        case "end":
          return _context12.stop();
      }
    }
  }, _marked12);
}

function loadIntercomSaga() {
  var options,
      _args13 = arguments;
  return _regenerator["default"].wrap(function loadIntercomSaga$(_context13) {
    while (1) {
      switch (_context13.prev = _context13.next) {
        case 0:
          options = _args13.length > 0 && _args13[0] !== undefined ? _args13[0] : {};
          _context13.next = 3;
          return (0, _effects.all)([(0, _effects.call)(watchForBoot, options), (0, _effects.call)(watchForShutdown, options), (0, _effects.call)(watchForUpdate, options), (0, _effects.call)(watchForTrackEvent, options), (0, _effects.call)(watchForInstall, options), (0, _effects.call)(watchForUninstall, options)]);

        case 3:
        case "end":
          return _context13.stop();
      }
    }
  }, _marked13);
}