UNPKG

@coorpacademy/progression-engine

Version:

83 lines (70 loc) 2.08 kB
import checkAnswer from '../check-answer'; import computeNextStep from './compute-next-step'; export const computeInitialStep = (config, availableContent) => { const initialStep = computeNextStep(config, null, availableContent, null); if (!initialStep) { return null; } const { nextContent, instructions } = initialStep; return { type: 'move', payload: { instructions, nextContent } }; }; export const computeNextStepAfterAnswer = (config, state, availableContent, currentSlide, action) => { const answerIsCorrect = action.payload.godMode || checkAnswer(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 = computeNextStep(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 } }; }; export const computeNextStepOnAcceptExtraLife = (config, state, availableContent) => { const partialAction = { type: 'extraLifeAccepted' }; const stepResult = computeNextStep(config, state, availableContent, partialAction); if (!stepResult) { return null; } const { nextContent, instructions } = stepResult; return { type: 'extraLifeAccepted', payload: { content: { ref: 'extraLife', type: 'node' }, nextContent, instructions } }; }; export const computeNextStepOnRefuseExtraLife = (config, state) => { return { type: 'extraLifeRefused', payload: { content: { ref: 'extraLife', type: 'node' }, nextContent: { ref: 'failExitNode', type: 'failure' } } }; }; //# sourceMappingURL=index.js.map