@coorpacademy/progression-engine
Version:
46 lines (39 loc) • 1.6 kB
JavaScript
;
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