@atlaskit/help
Version:
A cross-product help component
122 lines (121 loc) • 6.58 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useWhatsNewArticleContext = exports.WhatsNewArticleProvider = exports.CtxProvider = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _Requests = require("../../model/Requests");
var _ctx = require("../../util/hooks/ctx");
var _constants = require("../constants");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var _createCtx = (0, _ctx.createCtx)(),
_createCtx2 = (0, _slicedToArray2.default)(_createCtx, 2),
useWhatsNewArticleContext = exports.useWhatsNewArticleContext = _createCtx2[0],
CtxProvider = exports.CtxProvider = _createCtx2[1];
var WhatsNewArticleProvider = exports.WhatsNewArticleProvider = function WhatsNewArticleProvider(_ref) {
var whatsNewGetNotificationProvider = _ref.whatsNewGetNotificationProvider,
onWhatsNewButtonClick = _ref.onWhatsNewButtonClick,
onSearchWhatsNewArticles = _ref.onSearchWhatsNewArticles,
onSearchWhatsNewArticlesShowMoreClick = _ref.onSearchWhatsNewArticlesShowMoreClick,
onWhatsNewResultItemClick = _ref.onWhatsNewResultItemClick,
onGetWhatsNewArticle = _ref.onGetWhatsNewArticle,
productName = _ref.productName,
children = _ref.children;
// What's new
var _useState = (0, _react.useState)(undefined),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
whatsNewSearchType = _useState2[0],
setWhatsNewSearchType = _useState2[1];
var _useState3 = (0, _react.useState)(null),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
searchWhatsNewArticlesResult = _useState4[0],
setSearchWhatsNewArticlesResult = _useState4[1];
var _useState5 = (0, _react.useState)(_Requests.REQUEST_STATE.done),
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
searchWhatsNewArticlesState = _useState6[0],
setSearchWhatsNewArticlesState = _useState6[1];
var searchWhatsNew = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var filter,
numberOfItems,
page,
results,
_results,
_args = arguments;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
filter = _args.length > 0 && _args[0] !== undefined ? _args[0] : '';
numberOfItems = _args.length > 1 && _args[1] !== undefined ? _args[1] : _constants.NUMBER_OF_WHATS_NEW_ITEMS_PER_PAGE;
page = _args.length > 2 && _args[2] !== undefined ? _args[2] : '';
setWhatsNewSearchType(filter);
if (!onSearchWhatsNewArticles) {
_context.next = 28;
break;
}
_context.prev = 5;
setSearchWhatsNewArticlesState(_Requests.REQUEST_STATE.loading);
// If the filter type hasn't change, then we are loading an extra page
if (!(filter === whatsNewSearchType && page !== '')) {
_context.next = 14;
break;
}
_context.next = 10;
return onSearchWhatsNewArticles(filter, numberOfItems, page);
case 10:
results = _context.sent;
setSearchWhatsNewArticlesResult({
articles: [].concat((0, _toConsumableArray2.default)(searchWhatsNewArticlesResult !== null && searchWhatsNewArticlesResult !== void 0 && searchWhatsNewArticlesResult.articles ? searchWhatsNewArticlesResult.articles : []), (0, _toConsumableArray2.default)(results.articles)),
hasNextPage: results.hasNextPage,
nextPage: results.nextPage
});
_context.next = 19;
break;
case 14:
// new search
setSearchWhatsNewArticlesResult(null);
_context.next = 17;
return onSearchWhatsNewArticles(filter, numberOfItems, page);
case 17:
_results = _context.sent;
setSearchWhatsNewArticlesResult(_results);
case 19:
setSearchWhatsNewArticlesState(_Requests.REQUEST_STATE.done);
_context.next = 26;
break;
case 22:
_context.prev = 22;
_context.t0 = _context["catch"](5);
setSearchWhatsNewArticlesResult(null);
setSearchWhatsNewArticlesState(_Requests.REQUEST_STATE.error);
case 26:
_context.next = 29;
break;
case 28:
setSearchWhatsNewArticlesState(_Requests.REQUEST_STATE.error);
case 29:
case "end":
return _context.stop();
}
}, _callee, null, [[5, 22]]);
})), [onSearchWhatsNewArticles, whatsNewSearchType, searchWhatsNewArticlesResult]);
return /*#__PURE__*/_react.default.createElement(CtxProvider, {
value: {
whatsNewGetNotificationProvider: whatsNewGetNotificationProvider,
onWhatsNewButtonClick: onWhatsNewButtonClick,
onSearchWhatsNewArticlesShowMoreClick: onSearchWhatsNewArticlesShowMoreClick,
onSearchWhatsNewArticles: searchWhatsNew,
searchWhatsNewArticlesState: searchWhatsNewArticlesState,
searchWhatsNewArticlesResult: searchWhatsNewArticlesResult,
onWhatsNewResultItemClick: onWhatsNewResultItemClick,
onGetWhatsNewArticle: onGetWhatsNewArticle,
productName: productName
}
}, children);
};