UNPKG

@coorpacademy/progression-engine

Version:

46 lines (39 loc) 1.6 kB
'use strict'; exports.__esModule = true; exports.default = stars; var _find = require('lodash/fp/find'); var _find2 = _interopRequireDefault(_find); var _includes = require('lodash/fp/includes'); var _includes2 = _interopRequireDefault(_includes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function stars(config) { return (currentStars = 0, action, state) => { switch (action.type) { case 'answer': { const answerAction = action; return !answerAction.payload.instructions && answerAction.payload.isCorrect ? currentStars + config.starsPerCorrectAnswer : currentStars; } case 'clue': { const requestedClueAction = action; const slideRef = requestedClueAction.payload.content.ref; return (0, _includes2.default)(slideRef, state.requestedClues) ? currentStars : currentStars + config.starsPerAskingClue; } case 'resource': { const contentResourceViewedAction = action; const contentRef = contentResourceViewedAction.payload.content.ref; const contentType = contentResourceViewedAction.payload.content.type; const contentResourceAlreadyViewed = Boolean((0, _find2.default)({ type: contentType, ref: contentRef }, state.viewedResources)); if (contentResourceAlreadyViewed) { return currentStars; } return currentStars + config.starsPerResourceViewed; } default: return currentStars; } }; } //# sourceMappingURL=stars.js.map