Repository URL to install this package:
|
Version:
3.0.0-rc.0 ▾
|
"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);
}