UNPKG

@coorpacademy/progression-engine

Version:

92 lines (76 loc) 2.7 kB
'use strict'; exports.__esModule = true; exports.computeNextStepOnRefuseExtraLife = exports.computeNextStepOnAcceptExtraLife = exports.computeNextStepAfterAnswer = exports.computeInitialStep = undefined; var _checkAnswer = require('../check-answer'); var _checkAnswer2 = _interopRequireDefault(_checkAnswer); var _computeNextStep = require('./compute-next-step'); var _computeNextStep2 = _interopRequireDefault(_computeNextStep); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const computeInitialStep = exports.computeInitialStep = (config, availableContent) => { const initialStep = (0, _computeNextStep2.default)(config, null, availableContent, null); if (!initialStep) { return null; } const { nextContent, instructions } = initialStep; return { type: 'move', payload: { instructions, nextContent } }; }; const computeNextStepAfterAnswer = exports.computeNextStepAfterAnswer = (config, state, availableContent, currentSlide, action) => { const answerIsCorrect = action.payload.godMode || (0, _checkAnswer2.default)(config, currentSlide.question, action.payload.answer); const actionWithIsCorrect = { type: 'answer', payload: { answer: action.payload.answer, content: action.payload.content, godMode: action.payload.godMode, isCorrect: answerIsCorrect } }; const stepResult = (0, _computeNextStep2.default)(config, state, availableContent, actionWithIsCorrect); if (!stepResult) { return null; } const { nextContent, instructions, isCorrect } = stepResult; return { type: 'answer', payload: { answer: action.payload.answer, content: action.payload.content, godMode: action.payload.godMode, nextContent, isCorrect, instructions } }; }; const computeNextStepOnAcceptExtraLife = exports.computeNextStepOnAcceptExtraLife = (config, state, availableContent) => { const partialAction = { type: 'extraLifeAccepted' }; const stepResult = (0, _computeNextStep2.default)(config, state, availableContent, partialAction); if (!stepResult) { return null; } const { nextContent, instructions } = stepResult; return { type: 'extraLifeAccepted', payload: { content: { ref: 'extraLife', type: 'node' }, nextContent, instructions } }; }; const computeNextStepOnRefuseExtraLife = exports.computeNextStepOnRefuseExtraLife = (config, state) => { return { type: 'extraLifeRefused', payload: { content: { ref: 'extraLife', type: 'node' }, nextContent: { ref: 'failExitNode', type: 'failure' } } }; }; //# sourceMappingURL=index.js.map