@coorpacademy/player-web 3.19.32 → 3.19.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/map-state-to-props/error-popin.js +32 -0
- package/es/map-state-to-props/error-popin.js.map +1 -0
- package/es/map-state-to-props/popin-correction.js +2 -0
- package/es/map-state-to-props/popin-correction.js.map +1 -1
- package/es/map-state-to-props/popin-end.js +2 -0
- package/es/map-state-to-props/popin-end.js.map +1 -1
- package/es/map-state-to-props/slide.js +3 -1
- package/es/map-state-to-props/slide.js.map +1 -1
- package/es/map-state-to-props/test/popin-error.js +77 -0
- package/es/map-state-to-props/test/popin-error.js.map +1 -0
- package/lib/map-state-to-props/error-popin.js +41 -0
- package/lib/map-state-to-props/error-popin.js.map +1 -0
- package/lib/map-state-to-props/popin-correction.js +3 -0
- package/lib/map-state-to-props/popin-correction.js.map +1 -1
- package/lib/map-state-to-props/popin-end.js +3 -0
- package/lib/map-state-to-props/popin-end.js.map +1 -1
- package/lib/map-state-to-props/slide.js +4 -1
- package/lib/map-state-to-props/slide.js.map +1 -1
- package/lib/map-state-to-props/test/popin-error.js +85 -0
- package/lib/map-state-to-props/test/popin-error.js.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _values from "lodash/fp/values";
|
|
2
|
+
import _pipe from "lodash/fp/pipe";
|
|
3
|
+
import _get from "lodash/fp/get";
|
|
4
|
+
import _some from "lodash/fp/some";
|
|
5
|
+
|
|
6
|
+
const mapStateToErrorPopinProps = ({
|
|
7
|
+
dispatch
|
|
8
|
+
}) => {
|
|
9
|
+
return state => {
|
|
10
|
+
const isFailure = _pipe(_get('data'), _values, _some('isFailure'))(state);
|
|
11
|
+
|
|
12
|
+
const isContentFailure = _pipe(_get('data.contents'), _values, _some('isFailure'))(state);
|
|
13
|
+
|
|
14
|
+
if (isFailure || isContentFailure) return {
|
|
15
|
+
content: 'An unexpected error has occurred',
|
|
16
|
+
icon: 'AlertDiamond',
|
|
17
|
+
mode: 'alert',
|
|
18
|
+
descriptionText: 'Please reload the page and try again',
|
|
19
|
+
firstButton: {
|
|
20
|
+
largeButton: true,
|
|
21
|
+
label: 'Reload',
|
|
22
|
+
type: 'primary',
|
|
23
|
+
'aria-label': 'Reload',
|
|
24
|
+
handleOnclick: () => window.location.reload()
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
return;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default mapStateToErrorPopinProps;
|
|
32
|
+
//# sourceMappingURL=error-popin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/error-popin.js"],"names":["mapStateToErrorPopinProps","dispatch","state","isFailure","isContentFailure","content","icon","mode","descriptionText","firstButton","largeButton","label","type","handleOnclick","window","location","reload"],"mappings":";;;;;AAEA,MAAMA,yBAAyB,GAAG,CAAC;AAACC,EAAAA;AAAD,CAAD,KAAgB;AAChD,SAAOC,KAAK,IAAI;AACd,UAAMC,SAAS,GAAG,MAAK,KAAI,MAAJ,CAAL,WAA0B,MAAK,WAAL,CAA1B,EAA6CD,KAA7C,CAAlB;;AACA,UAAME,gBAAgB,GAAG,MAAK,KAAI,eAAJ,CAAL,WAAmC,MAAK,WAAL,CAAnC,EAAsDF,KAAtD,CAAzB;;AACA,QAAIC,SAAS,IAAIC,gBAAjB,EACE,OAAO;AACLC,MAAAA,OAAO,EAAE,kCADJ;AAELC,MAAAA,IAAI,EAAE,cAFD;AAGLC,MAAAA,IAAI,EAAE,OAHD;AAILC,MAAAA,eAAe,EAAE,sCAJZ;AAKLC,MAAAA,WAAW,EAAE;AACXC,QAAAA,WAAW,EAAE,IADF;AAEXC,QAAAA,KAAK,EAAE,QAFI;AAGXC,QAAAA,IAAI,EAAE,SAHK;AAIX,sBAAc,QAJH;AAKXC,QAAAA,aAAa,EAAE,MAAMC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;AALV;AALR,KAAP;AAaF;AACD,GAlBD;AAmBD,CApBD;;AAsBA,eAAehB,yBAAf","sourcesContent":["import {some, get, pipe, values} from 'lodash/fp';\n\nconst mapStateToErrorPopinProps = ({dispatch}) => {\n return state => {\n const isFailure = pipe(get('data'), values, some('isFailure'))(state);\n const isContentFailure = pipe(get('data.contents'), values, some('isFailure'))(state);\n if (isFailure || isContentFailure)\n return {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload',\n handleOnclick: () => window.location.reload()\n }\n };\n return;\n };\n};\n\nexport default mapStateToErrorPopinProps;\n"],"file":"error-popin.js"}
|
|
@@ -9,6 +9,7 @@ import _getOr from "lodash/fp/getOr";
|
|
|
9
9
|
import _assign from "lodash/fp/assign";
|
|
10
10
|
import { acceptExtraLife, getCurrentCorrection, getCurrentProgression, getCurrentProgressionId, getCurrentSlide, getEngineConfig, getLives, getPreviousSlide, hasViewedAResourceAtThisStep, openAssistance, refuseExtraLife, selectProgression, toggleAccordion } from '@coorpacademy/player-store';
|
|
11
11
|
import getResourcesProps from './resources';
|
|
12
|
+
import mapStateToErrorPopinProps from './error-popin';
|
|
12
13
|
|
|
13
14
|
const isNewChapter = (state, progression) => {
|
|
14
15
|
if (progression.content.type !== 'level' || _includes(progression.state.nextContent.type, ['success', 'failure'])) {
|
|
@@ -166,6 +167,7 @@ export const popinCorrectionStateToProps = (options, store) => {
|
|
|
166
167
|
cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined
|
|
167
168
|
}, header),
|
|
168
169
|
gameOver: noMoreExtraLife,
|
|
170
|
+
popinError: mapStateToErrorPopinProps(dispatch)(state),
|
|
169
171
|
overlay: mayAcceptExtraLife ? {
|
|
170
172
|
title: translate('Bonus!'),
|
|
171
173
|
text: translate('Get an extra life by viewing the lesson'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/popin-correction.js"],"names":["acceptExtraLife","getCurrentCorrection","getCurrentProgression","getCurrentProgressionId","getCurrentSlide","getEngineConfig","getLives","getPreviousSlide","hasViewedAResourceAtThisStep","openAssistance","refuseExtraLife","selectProgression","toggleAccordion","getResourcesProps","isNewChapter","state","progression","content","type","nextContent","currentSlide","currentChapterId","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","answerPrefix","answer","resources","cta","gameOver","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"mappings":"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","sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n};\n\nconst noExtraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n};\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"file":"popin-correction.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/popin-correction.js"],"names":["acceptExtraLife","getCurrentCorrection","getCurrentProgression","getCurrentProgressionId","getCurrentSlide","getEngineConfig","getLives","getPreviousSlide","hasViewedAResourceAtThisStep","openAssistance","refuseExtraLife","selectProgression","toggleAccordion","getResourcesProps","mapStateToErrorPopinProps","isNewChapter","state","progression","content","type","nextContent","currentSlide","currentChapterId","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","answerPrefix","answer","resources","cta","gameOver","popinError","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"mappings":"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","sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n};\n\nconst noExtraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n};\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"file":"popin-correction.js"}
|
|
@@ -15,6 +15,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
15
15
|
|
|
16
16
|
import { editComment, exit, getBestScore, getCurrentContent, getCurrentExitNode, getCurrentProgression, getCurrentProgressionId, getEndRank, getLives, getNextContent, getRecommendations, getStartRank, isCommentSent, isCurrentEngineLearner, isCurrentEngineMicrolearning, nextLevel, openRecommendation, postComment, retry, seeComment, getRedirectURLAfterEnd } from '@coorpacademy/player-store';
|
|
17
17
|
import headerProps from './header';
|
|
18
|
+
import mapStateToErrorPopinProps from './error-popin';
|
|
18
19
|
|
|
19
20
|
const extractRank = state => {
|
|
20
21
|
const start = getStartRank(state);
|
|
@@ -239,6 +240,7 @@ const popinEndStateToProps = (options, store) => {
|
|
|
239
240
|
const props = {
|
|
240
241
|
header: headerProps_(state),
|
|
241
242
|
mode: options.mode || 'default',
|
|
243
|
+
popinError: mapStateToErrorPopinProps(dispatch)(state),
|
|
242
244
|
summary: {
|
|
243
245
|
header: summaryHeader_(state)(exitNode),
|
|
244
246
|
action: extractAction_(state)(exitNode),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["editComment","exit","getBestScore","getCurrentContent","getCurrentExitNode","getCurrentProgression","getCurrentProgressionId","getEndRank","getLives","getNextContent","getRecommendations","getStartRank","isCommentSent","isCurrentEngineLearner","isCurrentEngineMicrolearning","nextLevel","openRecommendation","postComment","retry","seeComment","getRedirectURLAfterEnd","headerProps","mapStateToErrorPopinProps","extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","popinError","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
|
|
@@ -2,10 +2,12 @@ import _pipe from "lodash/fp/pipe";
|
|
|
2
2
|
import _mapValues from "lodash/fp/mapValues";
|
|
3
3
|
import _ from "lodash/fp/__";
|
|
4
4
|
import createPlayerStateToProps from './player';
|
|
5
|
+
import mapStateToErrorPopinProps from './error-popin';
|
|
5
6
|
|
|
6
7
|
const playerProps = (options, dispatch) => {
|
|
7
8
|
return _pipe(state => mapStateToProps => mapStateToProps(state), _mapValues(_, {
|
|
8
|
-
player: createPlayerStateToProps(options, dispatch)
|
|
9
|
+
player: createPlayerStateToProps(options, dispatch),
|
|
10
|
+
popin: mapStateToErrorPopinProps(dispatch)
|
|
9
11
|
}));
|
|
10
12
|
};
|
|
11
13
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/slide.js"],"names":["createPlayerStateToProps","playerProps","options","dispatch","state","mapStateToProps","player"],"mappings":";;;AAEA,OAAOA,wBAAP,MAAqC,UAArC;;AAEA,MAAMC,WAAW,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;AACzC,SAAO,MACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAD,CADtC,EAEL,cAAc;AACZE,IAAAA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/slide.js"],"names":["createPlayerStateToProps","mapStateToErrorPopinProps","playerProps","options","dispatch","state","mapStateToProps","player","popin"],"mappings":";;;AAEA,OAAOA,wBAAP,MAAqC,UAArC;AACA,OAAOC,yBAAP,MAAsC,eAAtC;;AAEA,MAAMC,WAAW,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;AACzC,SAAO,MACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAD,CADtC,EAEL,cAAc;AACZE,IAAAA,MAAM,EAAEP,wBAAwB,CAACG,OAAD,EAAUC,QAAV,CADpB;AAEZI,IAAAA,KAAK,EAAEP,yBAAyB,CAACG,QAAD;AAFpB,GAAd,CAFK,CAAP;AAOD,CARD;;AAUA,eAAeF,WAAf","sourcesContent":["import {__, mapValues, pipe} from 'lodash/fp';\n\nimport createPlayerStateToProps from './player';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst playerProps = (options, dispatch) => {\n return pipe(\n state => mapStateToProps => mapStateToProps(state),\n mapValues(__, {\n player: createPlayerStateToProps(options, dispatch),\n popin: mapStateToErrorPopinProps(dispatch)\n })\n );\n};\n\nexport default playerProps;\n"],"file":"slide.js"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import _omit from "lodash/fp/omit";
|
|
2
|
+
import _identity from "lodash/fp/identity";
|
|
3
|
+
import test from 'ava';
|
|
4
|
+
import mapStateToErrorPopinProps from '../error-popin';
|
|
5
|
+
test('should return error popin props if any call fails', t => {
|
|
6
|
+
t.plan(2);
|
|
7
|
+
global.window = {
|
|
8
|
+
location: {
|
|
9
|
+
reload: () => {
|
|
10
|
+
t.pass();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const props = mapStateToErrorPopinProps({
|
|
15
|
+
dispatch: _identity
|
|
16
|
+
})({
|
|
17
|
+
data: {
|
|
18
|
+
progressions: {
|
|
19
|
+
isFailure: true
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
t.deepEqual(_omit('firstButton.handleOnclick', props), {
|
|
24
|
+
content: 'An unexpected error has occurred',
|
|
25
|
+
icon: 'AlertDiamond',
|
|
26
|
+
mode: 'alert',
|
|
27
|
+
descriptionText: 'Please reload the page and try again',
|
|
28
|
+
firstButton: {
|
|
29
|
+
largeButton: true,
|
|
30
|
+
label: 'Reload',
|
|
31
|
+
type: 'primary',
|
|
32
|
+
'aria-label': 'Reload'
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
props.firstButton.handleOnclick();
|
|
36
|
+
});
|
|
37
|
+
test('should return error popin props if content calls fail', t => {
|
|
38
|
+
t.plan(2);
|
|
39
|
+
global.window = {
|
|
40
|
+
location: {
|
|
41
|
+
reload: () => {
|
|
42
|
+
t.pass();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const props = mapStateToErrorPopinProps({
|
|
47
|
+
dispatch: _identity
|
|
48
|
+
})({
|
|
49
|
+
data: {
|
|
50
|
+
contents: {
|
|
51
|
+
level: {
|
|
52
|
+
isFailure: true
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
t.deepEqual(_omit('firstButton.handleOnclick', props), {
|
|
58
|
+
content: 'An unexpected error has occurred',
|
|
59
|
+
icon: 'AlertDiamond',
|
|
60
|
+
mode: 'alert',
|
|
61
|
+
descriptionText: 'Please reload the page and try again',
|
|
62
|
+
firstButton: {
|
|
63
|
+
largeButton: true,
|
|
64
|
+
label: 'Reload',
|
|
65
|
+
type: 'primary',
|
|
66
|
+
'aria-label': 'Reload'
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
props.firstButton.handleOnclick();
|
|
70
|
+
});
|
|
71
|
+
test('should not return error popin props', t => {
|
|
72
|
+
const props = mapStateToErrorPopinProps({
|
|
73
|
+
dispatch: _identity
|
|
74
|
+
})({});
|
|
75
|
+
t.is(props, undefined);
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=popin-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/map-state-to-props/test/popin-error.js"],"names":["test","mapStateToErrorPopinProps","t","plan","global","window","location","reload","pass","props","dispatch","data","progressions","isFailure","deepEqual","content","icon","mode","descriptionText","firstButton","largeButton","label","type","handleOnclick","contents","level","is","undefined"],"mappings":";;AAAA,OAAOA,IAAP,MAAiB,KAAjB;AAIA,OAAOC,yBAAP,MAAsC,gBAAtC;AAEAD,IAAI,CAAC,mDAAD,EAAsDE,CAAC,IAAI;AAC7DA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACAC,EAAAA,MAAM,CAACC,MAAP,GAAgB;AACdC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,MAAM,EAAE,MAAM;AACZL,QAAAA,CAAC,CAACM,IAAF;AACD;AAHO;AADI,GAAhB;AAOA,QAAMC,KAAK,GAAGR,yBAAyB,CAAC;AAACS,IAAAA,QAAQ;AAAT,GAAD,CAAzB,CAAgD;AAC5DC,IAAAA,IAAI,EAAE;AACJC,MAAAA,YAAY,EAAE;AACZC,QAAAA,SAAS,EAAE;AADC;AADV;AADsD,GAAhD,CAAd;AAQAX,EAAAA,CAAC,CAACY,SAAF,CAAY,MAAK,2BAAL,EAAkCL,KAAlC,CAAZ,EAAsD;AACpDM,IAAAA,OAAO,EAAE,kCAD2C;AAEpDC,IAAAA,IAAI,EAAE,cAF8C;AAGpDC,IAAAA,IAAI,EAAE,OAH8C;AAIpDC,IAAAA,eAAe,EAAE,sCAJmC;AAKpDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,WAAW,EAAE,IADF;AAEXC,MAAAA,KAAK,EAAE,QAFI;AAGXC,MAAAA,IAAI,EAAE,SAHK;AAIX,oBAAc;AAJH;AALuC,GAAtD;AAYAb,EAAAA,KAAK,CAACU,WAAN,CAAkBI,aAAlB;AACD,CA9BG,CAAJ;AAgCAvB,IAAI,CAAC,uDAAD,EAA0DE,CAAC,IAAI;AACjEA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACAC,EAAAA,MAAM,CAACC,MAAP,GAAgB;AACdC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,MAAM,EAAE,MAAM;AACZL,QAAAA,CAAC,CAACM,IAAF;AACD;AAHO;AADI,GAAhB;AAOA,QAAMC,KAAK,GAAGR,yBAAyB,CAAC;AAACS,IAAAA,QAAQ;AAAT,GAAD,CAAzB,CAAgD;AAC5DC,IAAAA,IAAI,EAAE;AACJa,MAAAA,QAAQ,EAAE;AACRC,QAAAA,KAAK,EAAE;AACLZ,UAAAA,SAAS,EAAE;AADN;AADC;AADN;AADsD,GAAhD,CAAd;AAUAX,EAAAA,CAAC,CAACY,SAAF,CAAY,MAAK,2BAAL,EAAkCL,KAAlC,CAAZ,EAAsD;AACpDM,IAAAA,OAAO,EAAE,kCAD2C;AAEpDC,IAAAA,IAAI,EAAE,cAF8C;AAGpDC,IAAAA,IAAI,EAAE,OAH8C;AAIpDC,IAAAA,eAAe,EAAE,sCAJmC;AAKpDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,WAAW,EAAE,IADF;AAEXC,MAAAA,KAAK,EAAE,QAFI;AAGXC,MAAAA,IAAI,EAAE,SAHK;AAIX,oBAAc;AAJH;AALuC,GAAtD;AAYAb,EAAAA,KAAK,CAACU,WAAN,CAAkBI,aAAlB;AACD,CAhCG,CAAJ;AAkCAvB,IAAI,CAAC,qCAAD,EAAwCE,CAAC,IAAI;AAC/C,QAAMO,KAAK,GAAGR,yBAAyB,CAAC;AAACS,IAAAA,QAAQ;AAAT,GAAD,CAAzB,CAAgD,EAAhD,CAAd;AAEAR,EAAAA,CAAC,CAACwB,EAAF,CAAKjB,KAAL,EAAYkB,SAAZ;AACD,CAJG,CAAJ","sourcesContent":["import test from 'ava';\n\nimport {identity, omit} from 'lodash/fp';\n\nimport mapStateToErrorPopinProps from '../error-popin';\n\ntest('should return error popin props if any call fails', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n progressions: {\n isFailure: true\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should return error popin props if content calls fail', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n contents: {\n level: {\n isFailure: true\n }\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should not return error popin props', t => {\n const props = mapStateToErrorPopinProps({dispatch: identity})({});\n\n t.is(props, undefined);\n});\n"],"file":"popin-error.js"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
5
|
+
|
|
6
|
+
var _values2 = _interopRequireDefault(require("lodash/fp/values"));
|
|
7
|
+
|
|
8
|
+
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
9
|
+
|
|
10
|
+
var _get2 = _interopRequireDefault(require("lodash/fp/get"));
|
|
11
|
+
|
|
12
|
+
var _some2 = _interopRequireDefault(require("lodash/fp/some"));
|
|
13
|
+
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
const mapStateToErrorPopinProps = ({
|
|
17
|
+
dispatch
|
|
18
|
+
}) => {
|
|
19
|
+
return state => {
|
|
20
|
+
const isFailure = (0, _pipe2.default)((0, _get2.default)('data'), _values2.default, (0, _some2.default)('isFailure'))(state);
|
|
21
|
+
const isContentFailure = (0, _pipe2.default)((0, _get2.default)('data.contents'), _values2.default, (0, _some2.default)('isFailure'))(state);
|
|
22
|
+
if (isFailure || isContentFailure) return {
|
|
23
|
+
content: 'An unexpected error has occurred',
|
|
24
|
+
icon: 'AlertDiamond',
|
|
25
|
+
mode: 'alert',
|
|
26
|
+
descriptionText: 'Please reload the page and try again',
|
|
27
|
+
firstButton: {
|
|
28
|
+
largeButton: true,
|
|
29
|
+
label: 'Reload',
|
|
30
|
+
type: 'primary',
|
|
31
|
+
'aria-label': 'Reload',
|
|
32
|
+
handleOnclick: () => window.location.reload()
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
return;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
var _default = mapStateToErrorPopinProps;
|
|
40
|
+
exports.default = _default;
|
|
41
|
+
//# sourceMappingURL=error-popin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/error-popin.js"],"names":["mapStateToErrorPopinProps","dispatch","state","isFailure","isContentFailure","content","icon","mode","descriptionText","firstButton","largeButton","label","type","handleOnclick","window","location","reload"],"mappings":";;;;;;;;;;;;;;;AAEA,MAAMA,yBAAyB,GAAG,CAAC;AAACC,EAAAA;AAAD,CAAD,KAAgB;AAChD,SAAOC,KAAK,IAAI;AACd,UAAMC,SAAS,GAAG,oBAAK,mBAAI,MAAJ,CAAL,oBAA0B,oBAAK,WAAL,CAA1B,EAA6CD,KAA7C,CAAlB;AACA,UAAME,gBAAgB,GAAG,oBAAK,mBAAI,eAAJ,CAAL,oBAAmC,oBAAK,WAAL,CAAnC,EAAsDF,KAAtD,CAAzB;AACA,QAAIC,SAAS,IAAIC,gBAAjB,EACE,OAAO;AACLC,MAAAA,OAAO,EAAE,kCADJ;AAELC,MAAAA,IAAI,EAAE,cAFD;AAGLC,MAAAA,IAAI,EAAE,OAHD;AAILC,MAAAA,eAAe,EAAE,sCAJZ;AAKLC,MAAAA,WAAW,EAAE;AACXC,QAAAA,WAAW,EAAE,IADF;AAEXC,QAAAA,KAAK,EAAE,QAFI;AAGXC,QAAAA,IAAI,EAAE,SAHK;AAIX,sBAAc,QAJH;AAKXC,QAAAA,aAAa,EAAE,MAAMC,MAAM,CAACC,QAAP,CAAgBC,MAAhB;AALV;AALR,KAAP;AAaF;AACD,GAlBD;AAmBD,CApBD;;eAsBehB,yB","sourcesContent":["import {some, get, pipe, values} from 'lodash/fp';\n\nconst mapStateToErrorPopinProps = ({dispatch}) => {\n return state => {\n const isFailure = pipe(get('data'), values, some('isFailure'))(state);\n const isContentFailure = pipe(get('data.contents'), values, some('isFailure'))(state);\n if (isFailure || isContentFailure)\n return {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload',\n handleOnclick: () => window.location.reload()\n }\n };\n return;\n };\n};\n\nexport default mapStateToErrorPopinProps;\n"],"file":"error-popin.js"}
|
|
@@ -25,6 +25,8 @@ var _playerStore = require("@coorpacademy/player-store");
|
|
|
25
25
|
|
|
26
26
|
var _resources = _interopRequireDefault(require("./resources"));
|
|
27
27
|
|
|
28
|
+
var _errorPopin = _interopRequireDefault(require("./error-popin"));
|
|
29
|
+
|
|
28
30
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
29
31
|
|
|
30
32
|
const isNewChapter = (state, progression) => {
|
|
@@ -177,6 +179,7 @@ const popinCorrectionStateToProps = (options, store) => {
|
|
|
177
179
|
cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined
|
|
178
180
|
}, header),
|
|
179
181
|
gameOver: noMoreExtraLife,
|
|
182
|
+
popinError: (0, _errorPopin.default)(dispatch)(state),
|
|
180
183
|
overlay: mayAcceptExtraLife ? {
|
|
181
184
|
title: translate('Bonus!'),
|
|
182
185
|
text: translate('Get an extra life by viewing the lesson'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/popin-correction.js"],"names":["isNewChapter","state","progression","content","type","nextContent","currentSlide","currentChapterId","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","acceptExtraLife","refuseExtraLife","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","answerPrefix","answer","resources","cta","gameOver","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"mappings":"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","sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n};\n\nconst noExtraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n};\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"file":"popin-correction.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/popin-correction.js"],"names":["isNewChapter","state","progression","content","type","nextContent","currentSlide","currentChapterId","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","acceptExtraLife","refuseExtraLife","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","answerPrefix","answer","resources","cta","gameOver","popinError","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"mappings":"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","sourcesContent":["import {assign, getOr, get, isNil, join, indexOf, omitBy, isUndefined, includes} from 'lodash/fp';\n\nimport {\n acceptExtraLife,\n getCurrentCorrection,\n getCurrentProgression,\n getCurrentProgressionId,\n getCurrentSlide,\n getEngineConfig,\n getLives,\n getPreviousSlide,\n hasViewedAResourceAtThisStep,\n openAssistance,\n refuseExtraLife,\n selectProgression,\n toggleAccordion\n} from '@coorpacademy/player-store';\n\nimport getResourcesProps from './resources';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst isNewChapter = (state, progression) => {\n if (\n progression.content.type !== 'level' ||\n includes(progression.state.nextContent.type, ['success', 'failure'])\n ) {\n return false;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const previousSlide = getPreviousSlide(state);\n const previousChapterId = get('chapter_id', previousSlide);\n return previousChapterId !== currentChapterId;\n};\n\nconst getNextChapterTitle = (state, progression) => {\n const levelId = get('content.ref', progression);\n const chapterIds = get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);\n if (!chapterIds) {\n return undefined;\n }\n const currentSlide = getCurrentSlide(state);\n const currentChapterId = get('chapter_id', currentSlide);\n const currentChapterName = get(\n ['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'],\n state\n );\n if (!currentChapterName) {\n return undefined;\n }\n const indexChapter = indexOf(currentChapterId, chapterIds) + 1;\n return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;\n};\n\nconst getNextStepTitle = state => {\n const progression = getCurrentProgression(state);\n return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;\n};\n\nconst extraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const isRevival = hasViewedAResourceAtThisStep(state);\n const updateProgression = isRevival ? acceptExtraLife : refuseExtraLife;\n\n return {\n title: translate(isRevival ? 'Next' : 'Quit'),\n onClick: () => dispatch(updateProgression(progressionId))\n };\n};\n\nconst noExtraLifeCTAProps = ({translate}, {dispatch}) => state => {\n const progression = getCurrentProgression(state);\n const progressionId = getCurrentProgressionId(state);\n const isDead = progression.state.lives === 0;\n const chapterTitle = isNewChapter(state, progression)\n ? translate('Next chapter')\n : translate('Next');\n\n const ctaProps = {\n title: isDead ? translate('Game over') : chapterTitle,\n onClick: () => dispatch(selectProgression(progressionId)),\n nextStepTitle: isDead ? translate('Click to continue') : getNextStepTitle(state)\n };\n\n return omitBy(isUndefined, ctaProps);\n};\n\nexport const createHeaderCTA = (options, store) => {\n const extraLifeCTAProps_ = extraLifeCTAProps(options, store);\n const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const ctaProps = isExtraLifeActive ? extraLifeCTAProps_ : noExtraLifeCTAProps_;\n const {title, onClick, nextStepTitle} = ctaProps(state);\n\n return omitBy(isUndefined, {\n title,\n onClick,\n nextStepTitle\n });\n };\n};\n\nexport const openPopinAssistance = (dispatch, progression) => () =>\n dispatch(openAssistance(progression));\n\nexport const popinCorrectionStateToProps = (options, store) => {\n const getResourcesProps_ = getResourcesProps(options, store);\n const createHeaderCTA_ = createHeaderCTA(options, store);\n\n return state => {\n const {translate} = options;\n const {dispatch} = store;\n const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));\n const slide = getPreviousSlide(state);\n const engineConfig = getEngineConfig(state);\n const progression = getCurrentProgression(state);\n const isExtraLifeAvailable = get('remainingLifeRequests', engineConfig) > 0;\n const remainingLifeRequests = get('state.remainingLifeRequests', progression);\n const accordion = get('ui.corrections.accordion', state);\n const correction = getCurrentCorrection(state);\n const correctAnswer = correction.correctAnswer;\n const corrections = correction.corrections;\n const isCorrect = corrections.length === 0 ? null : get('state.isCorrect')(progression);\n const isLoading = isNil(isCorrect);\n\n const isExtraLifeActive = get('state.nextContent.ref', progression) === 'extraLife';\n const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);\n const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;\n const noMoreExtraLife = isExtraLifeAvailable && !isCorrect && remainingLifeRequests === 0;\n const {hide, count: lives} = getLives(state);\n const header = isLoading\n ? {}\n : {\n title: translate(isCorrect ? 'Good job' : 'Ouch'),\n subtitle: translate(isCorrect ? 'Good answer' : 'Wrong answer'),\n failed: !isCorrect,\n lives: hide ? null : lives\n };\n const question = {\n header: getOr('', 'question.header', slide),\n answerPrefix: translate('Correct answer'),\n answer: join(', ', correctAnswer)\n };\n\n const resources = getResourcesProps_(state, slide);\n\n return {\n header: isLoading\n ? {type: 'popinCorrection'}\n : assign(\n {\n type: 'popinCorrection',\n lives: 1,\n title: '',\n subtitle: '',\n corrections,\n cta: !mayAcceptExtraLife ? createHeaderCTA_(state) : undefined\n },\n header\n ),\n gameOver: noMoreExtraLife,\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n overlay: mayAcceptExtraLife\n ? {\n title: translate('Bonus!'),\n text: translate('Get an extra life by viewing the lesson'),\n lifeAmount: 1\n }\n : undefined,\n extraLifeGranted,\n quit: mayAcceptExtraLife\n ? {\n cta: createHeaderCTA_(state)\n }\n : undefined,\n question,\n resources: {\n title: translate('Access the lesson'),\n value: resources,\n open: getOr(false, '0', accordion)\n },\n klf: {\n title: translate('Key point'),\n value: getOr('', 'klf', slide),\n open: getOr(false, '1', accordion)\n },\n tips: {\n title: translate('Did you know that?'),\n value: getOr('', 'tips', slide),\n open: getOr(false, '2', accordion)\n },\n onClick: toggleAccordionSection,\n assistanceLink: {\n title: translate('Need help? Found a bug? Report it here'),\n onClick: openPopinAssistance(dispatch, progression)\n }\n };\n };\n};\n"],"file":"popin-correction.js"}
|
|
@@ -31,6 +31,8 @@ var _playerStore = require("@coorpacademy/player-store");
|
|
|
31
31
|
|
|
32
32
|
var _header = _interopRequireDefault(require("./header"));
|
|
33
33
|
|
|
34
|
+
var _errorPopin = _interopRequireDefault(require("./error-popin"));
|
|
35
|
+
|
|
34
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
37
|
|
|
36
38
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -252,6 +254,7 @@ const popinEndStateToProps = (options, store) => {
|
|
|
252
254
|
const props = {
|
|
253
255
|
header: headerProps_(state),
|
|
254
256
|
mode: options.mode || 'default',
|
|
257
|
+
popinError: (0, _errorPopin.default)(dispatch)(state),
|
|
255
258
|
summary: {
|
|
256
259
|
header: summaryHeader_(state)(exitNode),
|
|
257
260
|
action: extractAction_(state)(exitNode),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","seeComment","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","retry","summaryHeader","hide","count","lives","successCta","exit","level","_nextLevel","nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/popin-end.js"],"names":["extractRank","state","start","end","sign","diff","Math","abs","extractStars","progression","stars","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","seeComment","edition","title","value","postDisabled","onChange","target","onPost","ctaForFail","redirection","href","retry","summaryHeader","hide","count","lives","successCta","exit","level","_nextLevel","nextLevel","showNextLevel","type","subtitle","failed","rank","cta","extractRecommendation","_recommendations","hasRecommendations","recommendations","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","popinError","summary","action","feedback"],"mappings":"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","sourcesContent":["import {\n cond,\n constant,\n get,\n getOr,\n isArray,\n isEqual,\n isEmpty,\n map,\n pick,\n pipe,\n omit,\n isNull\n} from 'lodash/fp';\n\nimport {\n editComment,\n exit,\n getBestScore,\n getCurrentContent,\n getCurrentExitNode,\n getCurrentProgression,\n getCurrentProgressionId,\n getEndRank,\n getLives,\n getNextContent,\n getRecommendations,\n getStartRank,\n isCommentSent,\n isCurrentEngineLearner,\n isCurrentEngineMicrolearning,\n nextLevel,\n openRecommendation,\n postComment,\n retry,\n seeComment,\n getRedirectURLAfterEnd\n} from '@coorpacademy/player-store';\nimport headerProps from './header';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst extractRank = state => {\n const start = getStartRank(state);\n const end = getEndRank(state);\n\n if (start === end) {\n return null;\n } else {\n const sign = end - start > 0 ? '-' : '+';\n const diff = Math.abs(end - start);\n return `${sign}${diff}`;\n }\n};\n\nconst extractStars = state => {\n const progression = getCurrentProgression(state);\n const stars = get('state.stars')(progression);\n const bestScore = getBestScore(state);\n\n return stars > bestScore ? `+${stars - bestScore}` : '+0';\n};\n\nconst comment = ({translate}, {dispatch}) => state => {\n const progressionId = getCurrentProgressionId(state);\n const content = getCurrentContent(state);\n const message = get('ui.comments.text', state);\n return {\n isSent: isCommentSent(state),\n confirmation: {\n commentSectionTitle: translate('Thank you for your review!'),\n confirmationLinkText: translate('See your comment and those of your peers'),\n onClick: e => dispatch(seeComment)\n },\n edition: {\n title: translate('Share your opinion on this course'),\n value: get('ui.comments.text', state),\n postDisabled: isEmpty(get('ui.comments.text', state)),\n onChange: e => dispatch(editComment(e.target.value)),\n onPost: e => dispatch(postComment(progressionId, content, message))\n }\n };\n};\n\nconst ctaForFail = (redirection, translate, dispatch, state) => {\n if (redirection) {\n return {\n href: redirection,\n title: translate('Click to continue')\n };\n }\n\n return {\n onClick: () => dispatch(retry),\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level')\n };\n};\n\nconst summaryHeader = ({translate}, {dispatch}) => state => {\n const {hide, count} = getLives(state);\n const lives = hide ? null : count;\n\n let successCta = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const redirection = getRedirectURLAfterEnd(state);\n if (redirection) {\n successCta = {\n title: translate('Click to continue'),\n href: redirection\n };\n }\n\n if (isCurrentEngineLearner(state) && !redirection) {\n const level = get('level', getCurrentContent(state));\n if (level === 'advanced' || level === 'base') {\n const _nextLevel = getNextContent(state);\n if (_nextLevel) {\n successCta = {\n title: translate('Next level'),\n onClick: () => dispatch(nextLevel),\n showNextLevel: true\n };\n }\n }\n }\n\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => ({\n type: 'popinEnd',\n title: getOr('', 'name')(getCurrentContent(state)),\n subtitle: translate('Congratulations!'),\n failed: false,\n stars: extractStars(state),\n rank: extractRank(state),\n cta: successCta\n })\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => ({\n type: 'popinEnd',\n title: translate('Ooops'),\n subtitle: lives === 0 ? translate('You are out of lives!') : translate('Nice try!'),\n failed: true,\n lives,\n rank: extractRank(state),\n stars: null,\n cta: ctaForFail(redirection, translate, dispatch, state)\n })\n ],\n [constant(true), constant({type: 'popinEnd'})]\n ]);\n};\n\nconst extractRecommendation = ({translate}, {dispatch}) => state => {\n const _recommendations = getRecommendations(state);\n const hasRecommendations = isNull(_recommendations) || isArray(_recommendations);\n\n if (!hasRecommendations) {\n return null;\n }\n\n const recommendations = map(\n recommendation => ({\n ...recommendation,\n onClick: () => dispatch(openRecommendation(recommendation))\n }),\n _recommendations\n );\n\n return {\n title: translate('Related subjects'),\n cards: recommendations\n };\n};\n\nconst extractAction = ({translate}, {dispatch}) => state => {\n const nextContent = getNextContent(state);\n return cond([\n [\n pipe(get('type'), isEqual('success')),\n () => {\n if (get('nextContentType', nextContent) === 'chapter') {\n return {\n type: 'nextCourse',\n description: translate('Check out the next chapter in this course!'),\n prefix: translate('Next chapter_'),\n ...nextContent\n };\n } else if (nextContent) {\n // then it is a level\n const {name, levelTranslation} = nextContent;\n return {\n type: 'simple',\n prefix: translate('Next level_'),\n title: `${name} - ${levelTranslation}`,\n button: {\n title: translate('Next level'),\n href: null,\n onClick: () => dispatch(nextLevel)\n }\n };\n }\n }\n ],\n [\n pipe(get('type'), isEqual('failure')),\n () => {\n const currentContent = getCurrentContent(state);\n let title = getOr('', 'name', currentContent);\n if (isCurrentEngineLearner(state)) {\n title = `${getOr('', 'name', currentContent)} - ${getOr(\n '',\n 'levelTranslation',\n currentContent\n )}`;\n }\n return {\n type: 'simple',\n prefix: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter_')\n : translate('Retry level_'),\n title,\n button: {\n title: isCurrentEngineMicrolearning(state)\n ? translate('Retry chapter')\n : translate('Retry level'),\n onClick: () => dispatch(retry)\n }\n };\n }\n ],\n [constant(true), constant(null)]\n ]);\n};\n\nconst extractFeedback = pipe(\n pick(['title', 'description', 'media', 'mediaDescription']),\n omit(['media.ref', 'media.subtitles', 'media.posters'])\n);\n\nconst popinEndStateToProps = (options, store) => {\n const headerProps_ = headerProps(options, store);\n const summaryHeader_ = summaryHeader(options, store);\n const extractAction_ = extractAction(options, store);\n const extractRecommendation_ = extractRecommendation(options, store);\n const comment_ = comment(options, store);\n\n return state => {\n const progression = getCurrentProgression(state);\n\n const {translate} = options;\n const {dispatch} = store;\n\n const exitNode = getCurrentExitNode(state);\n\n const canPostAComment =\n get('type', exitNode) === 'success' && get('engine.ref', progression) === 'learner';\n\n const footer = {\n title: translate('Back to home'),\n onClick: () => dispatch(exit)\n };\n\n const props = {\n header: headerProps_(state),\n mode: options.mode || 'default',\n popinError: mapStateToErrorPopinProps(dispatch)(state),\n summary: {\n header: summaryHeader_(state)(exitNode),\n action: extractAction_(state)(exitNode),\n feedback: extractFeedback(exitNode),\n recommendation: extractRecommendation_(state),\n comment: canPostAComment ? comment_(state) : null,\n footer\n }\n };\n\n return props;\n };\n};\n\nexport default popinEndStateToProps;\n"],"file":"popin-end.js"}
|
|
@@ -11,11 +11,14 @@ var _2 = _interopRequireDefault(require("lodash/fp/__"));
|
|
|
11
11
|
|
|
12
12
|
var _player = _interopRequireDefault(require("./player"));
|
|
13
13
|
|
|
14
|
+
var _errorPopin = _interopRequireDefault(require("./error-popin"));
|
|
15
|
+
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
|
|
16
18
|
const playerProps = (options, dispatch) => {
|
|
17
19
|
return (0, _pipe2.default)(state => mapStateToProps => mapStateToProps(state), (0, _mapValues2.default)(_2.default, {
|
|
18
|
-
player: (0, _player.default)(options, dispatch)
|
|
20
|
+
player: (0, _player.default)(options, dispatch),
|
|
21
|
+
popin: (0, _errorPopin.default)(dispatch)
|
|
19
22
|
}));
|
|
20
23
|
};
|
|
21
24
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/map-state-to-props/slide.js"],"names":["playerProps","options","dispatch","state","mapStateToProps","player"],"mappings":";;;;;;;;;;;AAEA;;;;AAEA,MAAMA,WAAW,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;AACzC,SAAO,oBACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAD,CADtC,EAEL,qCAAc;AACZE,IAAAA,MAAM,EAAE,qBAAyBJ,OAAzB,EAAkCC,QAAlC;
|
|
1
|
+
{"version":3,"sources":["../../src/map-state-to-props/slide.js"],"names":["playerProps","options","dispatch","state","mapStateToProps","player","popin"],"mappings":";;;;;;;;;;;AAEA;;AACA;;;;AAEA,MAAMA,WAAW,GAAG,CAACC,OAAD,EAAUC,QAAV,KAAuB;AACzC,SAAO,oBACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAD,CADtC,EAEL,qCAAc;AACZE,IAAAA,MAAM,EAAE,qBAAyBJ,OAAzB,EAAkCC,QAAlC,CADI;AAEZI,IAAAA,KAAK,EAAE,yBAA0BJ,QAA1B;AAFK,GAAd,CAFK,CAAP;AAOD,CARD;;eAUeF,W","sourcesContent":["import {__, mapValues, pipe} from 'lodash/fp';\n\nimport createPlayerStateToProps from './player';\nimport mapStateToErrorPopinProps from './error-popin';\n\nconst playerProps = (options, dispatch) => {\n return pipe(\n state => mapStateToProps => mapStateToProps(state),\n mapValues(__, {\n player: createPlayerStateToProps(options, dispatch),\n popin: mapStateToErrorPopinProps(dispatch)\n })\n );\n};\n\nexport default playerProps;\n"],"file":"slide.js"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _omit2 = _interopRequireDefault(require("lodash/fp/omit"));
|
|
4
|
+
|
|
5
|
+
var _identity2 = _interopRequireDefault(require("lodash/fp/identity"));
|
|
6
|
+
|
|
7
|
+
var _ava = _interopRequireDefault(require("ava"));
|
|
8
|
+
|
|
9
|
+
var _errorPopin = _interopRequireDefault(require("../error-popin"));
|
|
10
|
+
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
|
|
13
|
+
(0, _ava.default)('should return error popin props if any call fails', t => {
|
|
14
|
+
t.plan(2);
|
|
15
|
+
global.window = {
|
|
16
|
+
location: {
|
|
17
|
+
reload: () => {
|
|
18
|
+
t.pass();
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const props = (0, _errorPopin.default)({
|
|
23
|
+
dispatch: _identity2.default
|
|
24
|
+
})({
|
|
25
|
+
data: {
|
|
26
|
+
progressions: {
|
|
27
|
+
isFailure: true
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
t.deepEqual((0, _omit2.default)('firstButton.handleOnclick', props), {
|
|
32
|
+
content: 'An unexpected error has occurred',
|
|
33
|
+
icon: 'AlertDiamond',
|
|
34
|
+
mode: 'alert',
|
|
35
|
+
descriptionText: 'Please reload the page and try again',
|
|
36
|
+
firstButton: {
|
|
37
|
+
largeButton: true,
|
|
38
|
+
label: 'Reload',
|
|
39
|
+
type: 'primary',
|
|
40
|
+
'aria-label': 'Reload'
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
props.firstButton.handleOnclick();
|
|
44
|
+
});
|
|
45
|
+
(0, _ava.default)('should return error popin props if content calls fail', t => {
|
|
46
|
+
t.plan(2);
|
|
47
|
+
global.window = {
|
|
48
|
+
location: {
|
|
49
|
+
reload: () => {
|
|
50
|
+
t.pass();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const props = (0, _errorPopin.default)({
|
|
55
|
+
dispatch: _identity2.default
|
|
56
|
+
})({
|
|
57
|
+
data: {
|
|
58
|
+
contents: {
|
|
59
|
+
level: {
|
|
60
|
+
isFailure: true
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
t.deepEqual((0, _omit2.default)('firstButton.handleOnclick', props), {
|
|
66
|
+
content: 'An unexpected error has occurred',
|
|
67
|
+
icon: 'AlertDiamond',
|
|
68
|
+
mode: 'alert',
|
|
69
|
+
descriptionText: 'Please reload the page and try again',
|
|
70
|
+
firstButton: {
|
|
71
|
+
largeButton: true,
|
|
72
|
+
label: 'Reload',
|
|
73
|
+
type: 'primary',
|
|
74
|
+
'aria-label': 'Reload'
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
props.firstButton.handleOnclick();
|
|
78
|
+
});
|
|
79
|
+
(0, _ava.default)('should not return error popin props', t => {
|
|
80
|
+
const props = (0, _errorPopin.default)({
|
|
81
|
+
dispatch: _identity2.default
|
|
82
|
+
})({});
|
|
83
|
+
t.is(props, undefined);
|
|
84
|
+
});
|
|
85
|
+
//# sourceMappingURL=popin-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/map-state-to-props/test/popin-error.js"],"names":["t","plan","global","window","location","reload","pass","props","dispatch","data","progressions","isFailure","deepEqual","content","icon","mode","descriptionText","firstButton","largeButton","label","type","handleOnclick","contents","level","is","undefined"],"mappings":";;;;;;AAAA;;AAIA;;;;AAEA,kBAAK,mDAAL,EAA0DA,CAAC,IAAI;AAC7DA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACAC,EAAAA,MAAM,CAACC,MAAP,GAAgB;AACdC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,MAAM,EAAE,MAAM;AACZL,QAAAA,CAAC,CAACM,IAAF;AACD;AAHO;AADI,GAAhB;AAOA,QAAMC,KAAK,GAAG,yBAA0B;AAACC,IAAAA,QAAQ;AAAT,GAA1B,EAAgD;AAC5DC,IAAAA,IAAI,EAAE;AACJC,MAAAA,YAAY,EAAE;AACZC,QAAAA,SAAS,EAAE;AADC;AADV;AADsD,GAAhD,CAAd;AAQAX,EAAAA,CAAC,CAACY,SAAF,CAAY,oBAAK,2BAAL,EAAkCL,KAAlC,CAAZ,EAAsD;AACpDM,IAAAA,OAAO,EAAE,kCAD2C;AAEpDC,IAAAA,IAAI,EAAE,cAF8C;AAGpDC,IAAAA,IAAI,EAAE,OAH8C;AAIpDC,IAAAA,eAAe,EAAE,sCAJmC;AAKpDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,WAAW,EAAE,IADF;AAEXC,MAAAA,KAAK,EAAE,QAFI;AAGXC,MAAAA,IAAI,EAAE,SAHK;AAIX,oBAAc;AAJH;AALuC,GAAtD;AAYAb,EAAAA,KAAK,CAACU,WAAN,CAAkBI,aAAlB;AACD,CA9BD;AAgCA,kBAAK,uDAAL,EAA8DrB,CAAC,IAAI;AACjEA,EAAAA,CAAC,CAACC,IAAF,CAAO,CAAP;AACAC,EAAAA,MAAM,CAACC,MAAP,GAAgB;AACdC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,MAAM,EAAE,MAAM;AACZL,QAAAA,CAAC,CAACM,IAAF;AACD;AAHO;AADI,GAAhB;AAOA,QAAMC,KAAK,GAAG,yBAA0B;AAACC,IAAAA,QAAQ;AAAT,GAA1B,EAAgD;AAC5DC,IAAAA,IAAI,EAAE;AACJa,MAAAA,QAAQ,EAAE;AACRC,QAAAA,KAAK,EAAE;AACLZ,UAAAA,SAAS,EAAE;AADN;AADC;AADN;AADsD,GAAhD,CAAd;AAUAX,EAAAA,CAAC,CAACY,SAAF,CAAY,oBAAK,2BAAL,EAAkCL,KAAlC,CAAZ,EAAsD;AACpDM,IAAAA,OAAO,EAAE,kCAD2C;AAEpDC,IAAAA,IAAI,EAAE,cAF8C;AAGpDC,IAAAA,IAAI,EAAE,OAH8C;AAIpDC,IAAAA,eAAe,EAAE,sCAJmC;AAKpDC,IAAAA,WAAW,EAAE;AACXC,MAAAA,WAAW,EAAE,IADF;AAEXC,MAAAA,KAAK,EAAE,QAFI;AAGXC,MAAAA,IAAI,EAAE,SAHK;AAIX,oBAAc;AAJH;AALuC,GAAtD;AAYAb,EAAAA,KAAK,CAACU,WAAN,CAAkBI,aAAlB;AACD,CAhCD;AAkCA,kBAAK,qCAAL,EAA4CrB,CAAC,IAAI;AAC/C,QAAMO,KAAK,GAAG,yBAA0B;AAACC,IAAAA,QAAQ;AAAT,GAA1B,EAAgD,EAAhD,CAAd;AAEAR,EAAAA,CAAC,CAACwB,EAAF,CAAKjB,KAAL,EAAYkB,SAAZ;AACD,CAJD","sourcesContent":["import test from 'ava';\n\nimport {identity, omit} from 'lodash/fp';\n\nimport mapStateToErrorPopinProps from '../error-popin';\n\ntest('should return error popin props if any call fails', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n progressions: {\n isFailure: true\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should return error popin props if content calls fail', t => {\n t.plan(2);\n global.window = {\n location: {\n reload: () => {\n t.pass();\n }\n }\n };\n const props = mapStateToErrorPopinProps({dispatch: identity})({\n data: {\n contents: {\n level: {\n isFailure: true\n }\n }\n }\n });\n\n t.deepEqual(omit('firstButton.handleOnclick', props), {\n content: 'An unexpected error has occurred',\n icon: 'AlertDiamond',\n mode: 'alert',\n descriptionText: 'Please reload the page and try again',\n firstButton: {\n largeButton: true,\n label: 'Reload',\n type: 'primary',\n 'aria-label': 'Reload'\n }\n });\n props.firstButton.handleOnclick();\n});\n\ntest('should not return error popin props', t => {\n const props = mapStateToErrorPopinProps({dispatch: identity})({});\n\n t.is(props, undefined);\n});\n"],"file":"popin-error.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/player-web",
|
|
3
|
-
"version": "3.19.
|
|
3
|
+
"version": "3.19.33",
|
|
4
4
|
"description": "CoorpAcademy web slide-player",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -60,14 +60,15 @@
|
|
|
60
60
|
"react-dom": "^17.0.2"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@coorpacademy/components": "10.23.
|
|
63
|
+
"@coorpacademy/components": "10.23.6",
|
|
64
64
|
"@coorpacademy/player-services": "5.2.16",
|
|
65
|
-
"@coorpacademy/player-store": "4.2.
|
|
65
|
+
"@coorpacademy/player-store": "4.2.19",
|
|
66
66
|
"@coorpacademy/progression-engine": "11.4.1",
|
|
67
67
|
"@coorpacademy/redux-task": "1.1.5",
|
|
68
68
|
"@coorpacademy/translate": "6.1.5",
|
|
69
69
|
"@coorpacademy/webpack-config": "10.0.4",
|
|
70
|
+
"eslint": "^8.24.0",
|
|
70
71
|
"lodash": "^4.17.21"
|
|
71
72
|
},
|
|
72
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "43e248bd7fdbfbd54f28a96cd4568044f441a343"
|
|
73
74
|
}
|