UNPKG

@coorpacademy/progression-engine

Version:

45 lines (44 loc) 1.98 kB
"use strict"; exports.__esModule = true; exports.default = viewedResources; var _includes2 = _interopRequireDefault(require("lodash/fp/includes")); var _get2 = _interopRequireDefault(require("lodash/fp/get")); var _findIndex2 = _interopRequireDefault(require("lodash/fp/findIndex")); var _concat2 = _interopRequireDefault(require("lodash/fp/concat")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function viewedResources(config) { return (currentViewedResources = [], action) => { switch (action.type) { case 'resource': { const resourceViewAction = action; const contentRef = resourceViewAction.payload.content.ref; const contentType = resourceViewAction.payload.content.type; const resourceRef = resourceViewAction.payload.resource.ref; const contentIndex = (0, _findIndex2.default)({ ref: contentRef }, currentViewedResources); if (contentIndex === -1) { return (0, _concat2.default)(currentViewedResources)([{ ref: contentRef, type: contentType, resources: [resourceRef] }]); } const contentResources = (0, _get2.default)('resources', currentViewedResources[contentIndex]); const resourceAlreadyViewed = (0, _includes2.default)(resourceRef, contentResources); if (resourceAlreadyViewed) return currentViewedResources; // return currentViewedResources, contentIndex, resourceRef; const newViewedResources = [...currentViewedResources]; newViewedResources[contentIndex] = { ...newViewedResources[contentIndex], resources: (0, _concat2.default)(newViewedResources[contentIndex].resources, [resourceRef]) }; return newViewedResources; } default: return currentViewedResources; } }; } //# sourceMappingURL=viewed-resources.js.map