UNPKG

@coorpacademy/progression-engine

Version:

40 lines 1.65 kB
import _includes from "lodash/fp/includes"; import _get from "lodash/fp/get"; import _findIndex from "lodash/fp/findIndex"; import _concat from "lodash/fp/concat"; export default 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 = _findIndex({ ref: contentRef }, currentViewedResources); if (contentIndex === -1) { return _concat(currentViewedResources)([{ ref: contentRef, type: contentType, resources: [resourceRef] }]); } const contentResources = _get('resources', currentViewedResources[contentIndex]); const resourceAlreadyViewed = _includes(resourceRef, contentResources); if (resourceAlreadyViewed) return currentViewedResources; // return currentViewedResources, contentIndex, resourceRef; const newViewedResources = [...currentViewedResources]; newViewedResources[contentIndex] = { ...newViewedResources[contentIndex], resources: _concat(newViewedResources[contentIndex].resources, [resourceRef]) }; return newViewedResources; } default: return currentViewedResources; } }; } //# sourceMappingURL=viewed-resources.js.map