@coorpacademy/player-web 4.22.52 → 4.23.0
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/index.js +1 -8
- package/es/index.js.map +1 -1
- package/es/map-state-to-props/answer.js +0 -35
- package/es/map-state-to-props/answer.js.map +1 -1
- package/es/map-state-to-props/error-popin.js +0 -4
- package/es/map-state-to-props/error-popin.js.map +1 -1
- package/es/map-state-to-props/header.js +3 -14
- package/es/map-state-to-props/header.js.map +1 -1
- package/es/map-state-to-props/index.js +0 -6
- package/es/map-state-to-props/index.js.map +1 -1
- package/es/map-state-to-props/loading.js +0 -1
- package/es/map-state-to-props/loading.js.map +1 -1
- package/es/map-state-to-props/player.js +0 -13
- package/es/map-state-to-props/player.js.map +1 -1
- package/es/map-state-to-props/popin-correction.js +0 -25
- package/es/map-state-to-props/popin-correction.js.map +1 -1
- package/es/map-state-to-props/popin-end.js +6 -35
- package/es/map-state-to-props/popin-end.js.map +1 -1
- package/es/map-state-to-props/resources.js +4 -10
- package/es/map-state-to-props/resources.js.map +1 -1
- package/es/map-state-to-props/slide.js +0 -2
- package/es/map-state-to-props/slide.js.map +1 -1
- package/es/map-state-to-props/test/answer.js +0 -21
- package/es/map-state-to-props/test/answer.js.map +1 -1
- package/es/map-state-to-props/test/header.js +0 -2
- package/es/map-state-to-props/test/header.js.map +1 -1
- package/es/map-state-to-props/test/index.js +22 -29
- package/es/map-state-to-props/test/index.js.map +1 -1
- package/es/map-state-to-props/test/player.js +6 -19
- package/es/map-state-to-props/test/player.js.map +1 -1
- package/es/map-state-to-props/test/popin-correction.create-header-cta.js +0 -15
- package/es/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
- package/es/map-state-to-props/test/popin-correction.js +0 -8
- package/es/map-state-to-props/test/popin-correction.js.map +1 -1
- package/es/map-state-to-props/test/popin-end.js +0 -13
- package/es/map-state-to-props/test/popin-end.js.map +1 -1
- package/es/map-state-to-props/test/popin-error.js.map +1 -1
- package/es/map-state-to-props/test/resources.js +0 -2
- package/es/map-state-to-props/test/resources.js.map +1 -1
- package/es/run-app.js +0 -2
- package/es/run-app.js.map +1 -1
- package/es/store.js +0 -4
- package/es/store.js.map +1 -1
- package/es/test/add-timeout.js.map +1 -1
- package/es/test/helpers/css-register.js.map +1 -1
- package/es/test/helpers/macro.js +0 -1
- package/es/test/helpers/macro.js.map +1 -1
- package/es/test/index.js.map +1 -1
- package/es/test/init-reducers.js.map +1 -1
- package/es/test/locales.js.map +1 -1
- package/es/test/run-app.js.map +1 -1
- package/es/test/store.js.map +1 -1
- package/es/views/index.js.map +1 -1
- package/es/views/test/helpers/render.js +0 -2
- package/es/views/test/helpers/render.js.map +1 -1
- package/es/views/test/helpers/state-to-vnode.js +0 -2
- package/es/views/test/helpers/state-to-vnode.js.map +1 -1
- package/es/views/test/loading.js.map +1 -1
- package/es/views/test/popin-correction.js +0 -6
- package/es/views/test/popin-correction.js.map +1 -1
- package/es/views/test/popin-end.js.map +1 -1
- package/es/views/test/router.js.map +1 -1
- package/es/views/test/slide.js +0 -1
- package/es/views/test/slide.js.map +1 -1
- package/lib/index.js +2 -18
- package/lib/index.js.map +1 -1
- package/lib/map-state-to-props/answer.js +1 -47
- package/lib/map-state-to-props/answer.js.map +1 -1
- package/lib/map-state-to-props/error-popin.js +2 -10
- package/lib/map-state-to-props/error-popin.js.map +1 -1
- package/lib/map-state-to-props/header.js +5 -19
- package/lib/map-state-to-props/header.js.map +1 -1
- package/lib/map-state-to-props/index.js +1 -19
- package/lib/map-state-to-props/index.js.map +1 -1
- package/lib/map-state-to-props/loading.js +1 -4
- package/lib/map-state-to-props/loading.js.map +1 -1
- package/lib/map-state-to-props/player.js +2 -22
- package/lib/map-state-to-props/player.js.map +1 -1
- package/lib/map-state-to-props/popin-correction.js +1 -32
- package/lib/map-state-to-props/popin-correction.js.map +1 -1
- package/lib/map-state-to-props/popin-end.js +8 -47
- package/lib/map-state-to-props/popin-end.js.map +1 -1
- package/lib/map-state-to-props/resources.js +6 -20
- package/lib/map-state-to-props/resources.js.map +1 -1
- package/lib/map-state-to-props/slide.js +2 -11
- package/lib/map-state-to-props/slide.js.map +1 -1
- package/lib/map-state-to-props/test/answer.js +1 -37
- package/lib/map-state-to-props/test/answer.js.map +1 -1
- package/lib/map-state-to-props/test/header.js +1 -12
- package/lib/map-state-to-props/test/header.js.map +1 -1
- package/lib/map-state-to-props/test/index.js +23 -20
- package/lib/map-state-to-props/test/index.js.map +1 -1
- package/lib/map-state-to-props/test/player.js +12 -52
- package/lib/map-state-to-props/test/player.js.map +1 -1
- package/lib/map-state-to-props/test/popin-correction.create-header-cta.js +1 -27
- package/lib/map-state-to-props/test/popin-correction.create-header-cta.js.map +1 -1
- package/lib/map-state-to-props/test/popin-correction.js +1 -11
- package/lib/map-state-to-props/test/popin-correction.js.map +1 -1
- package/lib/map-state-to-props/test/popin-end.js +1 -26
- package/lib/map-state-to-props/test/popin-end.js.map +1 -1
- package/lib/map-state-to-props/test/popin-error.js +1 -6
- package/lib/map-state-to-props/test/popin-error.js.map +1 -1
- package/lib/map-state-to-props/test/resources.js +1 -11
- package/lib/map-state-to-props/test/resources.js.map +1 -1
- package/lib/run-app.js +1 -5
- package/lib/run-app.js.map +1 -1
- package/lib/store.js +1 -11
- package/lib/store.js.map +1 -1
- package/lib/test/add-timeout.js +1 -4
- package/lib/test/add-timeout.js.map +1 -1
- package/lib/test/helpers/css-register.js +1 -3
- package/lib/test/helpers/css-register.js.map +1 -1
- package/lib/test/helpers/macro.js +1 -4
- package/lib/test/helpers/macro.js.map +1 -1
- package/lib/test/index.js +3 -12
- package/lib/test/index.js.map +1 -1
- package/lib/test/init-reducers.js +1 -5
- package/lib/test/init-reducers.js.map +1 -1
- package/lib/test/locales.js +1 -8
- package/lib/test/locales.js.map +1 -1
- package/lib/test/run-app.js +1 -5
- package/lib/test/run-app.js.map +1 -1
- package/lib/test/store.js +1 -5
- package/lib/test/store.js.map +1 -1
- package/lib/views/index.js +2 -9
- package/lib/views/index.js.map +1 -1
- package/lib/views/test/helpers/render.js +2 -10
- package/lib/views/test/helpers/render.js.map +1 -1
- package/lib/views/test/helpers/state-to-vnode.js +1 -6
- package/lib/views/test/helpers/state-to-vnode.js.map +1 -1
- package/lib/views/test/loading.js +1 -5
- package/lib/views/test/loading.js.map +1 -1
- package/lib/views/test/popin-correction.js +1 -18
- package/lib/views/test/popin-correction.js.map +1 -1
- package/lib/views/test/popin-end.js +1 -10
- package/lib/views/test/popin-end.js.map +1 -1
- package/lib/views/test/router.js +1 -8
- package/lib/views/test/router.js.map +1 -1
- package/lib/views/test/slide.js +3 -23
- package/lib/views/test/slide.js.map +1 -1
- package/package.json +13 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","ctaButtonValidate","submitValue","light","small","name","secondary","useButtonTag","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","showReviewLesson","header"],"sources":["../../src/map-state-to-props/player.js"],"sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n 'aria-label': `${translate('Validate')}. ${translate('Submit your Answer')}`,\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state),\n useButtonTag: true\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"player.js","names":["getClue","getCoaches","getCurrentClue","getCurrentContent","getCurrentSlide","getEngineConfig","getQuestionMedia","getRoute","hasSeenLesson","selectClue","selectRoute","startChat","validateAnswer","isQuestionCtaDisabled","getProgressionSteps","createGetAnswerProps","createGetHelp","createHeaderStateToProps","getResourcesProps","ROUTES","STARS_DIFF","media","clue","playerProps","options","store","createGetAnswerProps_","getResourcesProps_","createGetHelp_","createHeaderStateToProps_","state","translate","services","dispatch","engineConfig","slide","slideContext","_get","currentContent","answer","mediaQuestion","route","resources","help","starsDiff","clickClueHandler","clickSeeClueHandler","clickBackToAnswerHandler","clickCTAHandler","hasClue","slideLessons","notifyNewMedia","_isEmpty","notifyReviewLesson","contextButton","title","type","selected","onClick","availableCoaches","buttons","disabled","notify","Coach","push","headerProps","_includes","ctaButtonValidate","submitValue","light","small","name","secondary","useButtonTag","ctaButtonBackToQuestion","typeClue","text","onClickSeeClue","question","step","backgroundUrl","verticalMargin","cta","answerType","model","showNewMedia","_isNil","showReviewLesson","header"],"sources":["../../src/map-state-to-props/player.js"],"sourcesContent":["import {includes, isEmpty, get, isNil} from 'lodash/fp';\nimport {\n getClue,\n getCoaches,\n getCurrentClue,\n getCurrentContent,\n getCurrentSlide,\n getEngineConfig,\n getQuestionMedia,\n getRoute,\n hasSeenLesson,\n selectClue,\n selectRoute,\n startChat,\n validateAnswer,\n isQuestionCtaDisabled,\n getProgressionSteps\n} from '@coorpacademy/player-store';\nimport {createGetAnswerProps, createGetHelp} from './answer';\nimport createHeaderStateToProps from './header';\nimport getResourcesProps from './resources';\n\nconst ROUTES = ['media', 'clue', 'context', 'answer'];\n\nconst STARS_DIFF = {\n media: 'starsPerResourceViewed',\n clue: 'starsPerAskingClue'\n};\n\nconst playerProps = (options, store) => {\n const createGetAnswerProps_ = createGetAnswerProps(options, store);\n const getResourcesProps_ = getResourcesProps(options, store);\n const createGetHelp_ = createGetHelp(options, store);\n const createHeaderStateToProps_ = createHeaderStateToProps(options, store);\n\n return state => {\n const {translate, services} = options;\n const {dispatch} = store;\n\n const engineConfig = getEngineConfig(state);\n const slide = getCurrentSlide(state);\n const slideContext = get('context', slide);\n const currentContent = getCurrentContent(state);\n const answer = createGetAnswerProps_(state, slide);\n const mediaQuestion = getQuestionMedia(state);\n const clue = getCurrentClue(state) || null;\n const route = getRoute(state);\n const resources = getResourcesProps_(state, slide);\n const help = createGetHelp_(slide);\n const starsDiff = get(STARS_DIFF[route], engineConfig) || 0;\n const clickClueHandler = () => dispatch(selectClue);\n const clickSeeClueHandler = () => dispatch(getClue);\n const clickBackToAnswerHandler = () => dispatch(selectRoute('answer'));\n const clickCTAHandler = () => dispatch(validateAnswer());\n\n const hasClue = get('hasClue', slide);\n const slideLessons = get('lessons', slide);\n\n const notifyNewMedia = !isEmpty(slideLessons) && !hasSeenLesson(state);\n const notifyReviewLesson = !isEmpty(slideLessons) && hasSeenLesson(state);\n\n const contextButton = get('title', slideContext)\n ? [\n {\n title: translate('Context'),\n type: 'context',\n selected: route === 'context',\n onClick: () => {\n return dispatch(selectRoute('context'));\n }\n }\n ]\n : [];\n\n const availableCoaches = getCoaches(state);\n const buttons = [\n ...contextButton,\n {\n title: translate('Question'),\n type: 'question',\n selected: route === 'answer',\n onClick: clickBackToAnswerHandler\n },\n {\n title: translate('Media'),\n type: 'media',\n selected: route === 'media',\n disabled: isEmpty(slideLessons),\n onClick: () => dispatch(selectRoute('media')),\n notify: notifyNewMedia\n },\n {\n title: translate('Clue'),\n type: 'clue',\n selected: route === 'clue',\n disabled: !hasClue,\n onClick: clickClueHandler\n }\n ];\n services?.Coach &&\n buttons.push({\n title: translate('Coach'),\n type: 'coach',\n disabled: availableCoaches === 0,\n onClick: () => dispatch(startChat())\n });\n const headerProps = createHeaderStateToProps_(state);\n\n if (!includes(route, ROUTES)) {\n return {};\n }\n\n const ctaButtonValidate = {\n submitValue: translate('Validate'),\n 'aria-label': `${translate('Validate')}. ${translate('Submit your Answer')}`,\n onClick: clickCTAHandler,\n light: false,\n small: false,\n name: 'validateAnswerCTA',\n secondary: false,\n disabled: isQuestionCtaDisabled(state),\n useButtonTag: true\n };\n\n const ctaButtonBackToQuestion = {\n submitValue: translate(route === 'context' ? 'Go to question' : 'Back to question'),\n onClick: clickBackToAnswerHandler,\n light: false,\n small: false,\n name: 'backToQuestionCTA',\n secondary: true,\n disabled: false\n };\n\n return {\n typeClue: route,\n text: clue,\n onClickSeeClue: clickSeeClueHandler,\n question: get('question.header')(slide),\n step: getProgressionSteps(state),\n slideContext,\n backgroundUrl: get('backgroundUrl')(currentContent),\n verticalMargin: 260,\n starsDiff,\n resources,\n cta: route === 'answer' ? ctaButtonValidate : ctaButtonBackToQuestion,\n help,\n answerType: {\n model: answer,\n media: mediaQuestion\n },\n showNewMedia: (isNil(route) || route === 'answer') && notifyNewMedia,\n showReviewLesson: (isNil(route) || route === 'answer') && notifyReviewLesson,\n buttons,\n header: headerProps\n };\n };\n};\n\nexport default playerProps;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,51 +10,35 @@ 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
12
|
import mapStateToErrorPopinProps from './error-popin';
|
|
13
|
-
|
|
14
13
|
const isNewChapter = (state, progression) => {
|
|
15
14
|
if (progression.content.type !== 'level' || _includes(progression.state.nextContent.type, ['success', 'failure'])) {
|
|
16
15
|
return false;
|
|
17
16
|
}
|
|
18
|
-
|
|
19
17
|
const currentSlide = getCurrentSlide(state);
|
|
20
|
-
|
|
21
18
|
const currentChapterId = _get('chapter_id', currentSlide);
|
|
22
|
-
|
|
23
19
|
const previousSlide = getPreviousSlide(state);
|
|
24
|
-
|
|
25
20
|
const previousChapterId = _get('chapter_id', previousSlide);
|
|
26
|
-
|
|
27
21
|
return previousChapterId !== currentChapterId;
|
|
28
22
|
};
|
|
29
|
-
|
|
30
23
|
const getNextChapterTitle = (state, progression) => {
|
|
31
24
|
const levelId = _get('content.ref', progression);
|
|
32
|
-
|
|
33
25
|
const chapterIds = _get(['data', 'contents', 'level', 'entities', levelId, 'chapterIds'], state);
|
|
34
|
-
|
|
35
26
|
if (!chapterIds) {
|
|
36
27
|
return undefined;
|
|
37
28
|
}
|
|
38
|
-
|
|
39
29
|
const currentSlide = getCurrentSlide(state);
|
|
40
|
-
|
|
41
30
|
const currentChapterId = _get('chapter_id', currentSlide);
|
|
42
|
-
|
|
43
31
|
const currentChapterName = _get(['data', 'contents', 'chapter', 'entities', currentChapterId, 'name'], state);
|
|
44
|
-
|
|
45
32
|
if (!currentChapterName) {
|
|
46
33
|
return undefined;
|
|
47
34
|
}
|
|
48
|
-
|
|
49
35
|
const indexChapter = _indexOf(currentChapterId, chapterIds) + 1;
|
|
50
36
|
return `${indexChapter}/${chapterIds.length} ${currentChapterName}`;
|
|
51
37
|
};
|
|
52
|
-
|
|
53
38
|
const getNextStepTitle = state => {
|
|
54
39
|
const progression = getCurrentProgression(state);
|
|
55
40
|
return isNewChapter(state, progression) ? getNextChapterTitle(state, progression) : undefined;
|
|
56
41
|
};
|
|
57
|
-
|
|
58
42
|
const extraLifeCTAProps = ({
|
|
59
43
|
translate
|
|
60
44
|
}, {
|
|
@@ -68,7 +52,6 @@ const extraLifeCTAProps = ({
|
|
|
68
52
|
onClick: () => dispatch(updateProgression(progressionId))
|
|
69
53
|
};
|
|
70
54
|
};
|
|
71
|
-
|
|
72
55
|
const noExtraLifeCTAProps = ({
|
|
73
56
|
translate
|
|
74
57
|
}, {
|
|
@@ -85,7 +68,6 @@ const noExtraLifeCTAProps = ({
|
|
|
85
68
|
};
|
|
86
69
|
return _omitBy(_isUndefined, ctaProps);
|
|
87
70
|
};
|
|
88
|
-
|
|
89
71
|
export const createHeaderCTA = (options, store) => {
|
|
90
72
|
const extraLifeCTAProps_ = extraLifeCTAProps(options, store);
|
|
91
73
|
const noExtraLifeCTAProps_ = noExtraLifeCTAProps(options, store);
|
|
@@ -116,25 +98,18 @@ export const popinCorrectionStateToProps = (options, store) => {
|
|
|
116
98
|
const {
|
|
117
99
|
dispatch
|
|
118
100
|
} = store;
|
|
119
|
-
|
|
120
101
|
const toggleAccordionSection = sectionId => dispatch(toggleAccordion(sectionId));
|
|
121
|
-
|
|
122
102
|
const slide = getPreviousSlide(state);
|
|
123
103
|
const engineConfig = getEngineConfig(state);
|
|
124
104
|
const progression = getCurrentProgression(state);
|
|
125
105
|
const isExtraLifeAvailable = _get('remainingLifeRequests', engineConfig) > 0;
|
|
126
|
-
|
|
127
106
|
const remainingLifeRequests = _get('state.remainingLifeRequests', progression);
|
|
128
|
-
|
|
129
107
|
const accordion = _get('ui.corrections.accordion', state);
|
|
130
|
-
|
|
131
108
|
const correction = getCurrentCorrection(state);
|
|
132
109
|
const correctAnswer = correction.correctAnswer;
|
|
133
110
|
const corrections = correction.corrections;
|
|
134
111
|
const isCorrect = corrections.length === 0 ? null : _get('state.isCorrect')(progression);
|
|
135
|
-
|
|
136
112
|
const isLoading = _isNil(isCorrect);
|
|
137
|
-
|
|
138
113
|
const isExtraLifeActive = _get('state.nextContent.ref', progression) === 'extraLife';
|
|
139
114
|
const extraLifeGranted = isExtraLifeActive && hasViewedAResourceAtThisStep(state);
|
|
140
115
|
const mayAcceptExtraLife = isExtraLifeActive && !extraLifeGranted;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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"],"sources":["../../src/map-state-to-props/popin-correction.js"],"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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"popin-correction.js","names":["acceptExtraLife","getCurrentCorrection","getCurrentProgression","getCurrentProgressionId","getCurrentSlide","getEngineConfig","getLives","getPreviousSlide","hasViewedAResourceAtThisStep","openAssistance","refuseExtraLife","selectProgression","toggleAccordion","getResourcesProps","mapStateToErrorPopinProps","isNewChapter","state","progression","content","type","_includes","nextContent","currentSlide","currentChapterId","_get","previousSlide","previousChapterId","getNextChapterTitle","levelId","chapterIds","undefined","currentChapterName","indexChapter","_indexOf","length","getNextStepTitle","extraLifeCTAProps","translate","dispatch","progressionId","isRevival","updateProgression","title","onClick","noExtraLifeCTAProps","isDead","lives","chapterTitle","ctaProps","nextStepTitle","_omitBy","_isUndefined","createHeaderCTA","options","store","extraLifeCTAProps_","noExtraLifeCTAProps_","isExtraLifeActive","openPopinAssistance","popinCorrectionStateToProps","getResourcesProps_","createHeaderCTA_","toggleAccordionSection","sectionId","slide","engineConfig","isExtraLifeAvailable","remainingLifeRequests","accordion","correction","correctAnswer","corrections","isCorrect","isLoading","_isNil","extraLifeGranted","mayAcceptExtraLife","noMoreExtraLife","hide","count","header","subtitle","failed","question","_getOr","answerPrefix","answer","_join","resources","_assign","cta","gameOver","popinError","overlay","text","lifeAmount","quit","value","open","klf","tips","assistanceLink"],"sources":["../../src/map-state-to-props/popin-correction.js"],"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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,17 +10,12 @@ import _getOr from "lodash/fp/getOr";
|
|
|
10
10
|
import _get from "lodash/fp/get";
|
|
11
11
|
import _constant from "lodash/fp/constant";
|
|
12
12
|
import _cond from "lodash/fp/cond";
|
|
13
|
-
|
|
14
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
15
|
-
|
|
16
13
|
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
14
|
import headerProps from './header';
|
|
18
15
|
import mapStateToErrorPopinProps from './error-popin';
|
|
19
|
-
|
|
20
16
|
const extractRank = state => {
|
|
21
17
|
const start = getStartRank(state);
|
|
22
18
|
const end = getEndRank(state);
|
|
23
|
-
|
|
24
19
|
if (start === end) {
|
|
25
20
|
return null;
|
|
26
21
|
} else {
|
|
@@ -29,16 +24,12 @@ const extractRank = state => {
|
|
|
29
24
|
return `${sign}${diff}`;
|
|
30
25
|
}
|
|
31
26
|
};
|
|
32
|
-
|
|
33
27
|
const extractStars = state => {
|
|
34
28
|
const progression = getCurrentProgression(state);
|
|
35
|
-
|
|
36
29
|
const stars = _get('state.stars')(progression);
|
|
37
|
-
|
|
38
30
|
const bestScore = getBestScore(state);
|
|
39
31
|
return stars > bestScore ? `+${stars - bestScore}` : '+0';
|
|
40
32
|
};
|
|
41
|
-
|
|
42
33
|
const comment = ({
|
|
43
34
|
translate
|
|
44
35
|
}, {
|
|
@@ -46,9 +37,7 @@ const comment = ({
|
|
|
46
37
|
}) => state => {
|
|
47
38
|
const progressionId = getCurrentProgressionId(state);
|
|
48
39
|
const content = getCurrentContent(state);
|
|
49
|
-
|
|
50
40
|
const message = _get('ui.comments.text', state);
|
|
51
|
-
|
|
52
41
|
return {
|
|
53
42
|
isSent: isCommentSent(state),
|
|
54
43
|
confirmation: {
|
|
@@ -65,7 +54,6 @@ const comment = ({
|
|
|
65
54
|
}
|
|
66
55
|
};
|
|
67
56
|
};
|
|
68
|
-
|
|
69
57
|
const ctaForFail = (redirection, translate, dispatch, state) => {
|
|
70
58
|
if (redirection) {
|
|
71
59
|
return {
|
|
@@ -73,13 +61,11 @@ const ctaForFail = (redirection, translate, dispatch, state) => {
|
|
|
73
61
|
title: translate('Click to continue')
|
|
74
62
|
};
|
|
75
63
|
}
|
|
76
|
-
|
|
77
64
|
return {
|
|
78
65
|
onClick: () => dispatch(retry),
|
|
79
66
|
title: isCurrentEngineMicrolearning(state) ? translate('Retry chapter') : translate('Retry level')
|
|
80
67
|
};
|
|
81
68
|
};
|
|
82
|
-
|
|
83
69
|
const summaryHeader = ({
|
|
84
70
|
translate
|
|
85
71
|
}, {
|
|
@@ -95,20 +81,16 @@ const summaryHeader = ({
|
|
|
95
81
|
onClick: () => dispatch(exit)
|
|
96
82
|
};
|
|
97
83
|
const redirection = getRedirectURLAfterEnd(state);
|
|
98
|
-
|
|
99
84
|
if (redirection) {
|
|
100
85
|
successCta = {
|
|
101
86
|
title: translate('Click to continue'),
|
|
102
87
|
href: redirection
|
|
103
88
|
};
|
|
104
89
|
}
|
|
105
|
-
|
|
106
90
|
if (isCurrentEngineLearner(state) && !redirection) {
|
|
107
91
|
const level = _get('level', getCurrentContent(state));
|
|
108
|
-
|
|
109
92
|
if (level === 'advanced' || level === 'base') {
|
|
110
93
|
const _nextLevel = getNextContent(state);
|
|
111
|
-
|
|
112
94
|
if (_nextLevel) {
|
|
113
95
|
successCta = {
|
|
114
96
|
title: translate('Next level'),
|
|
@@ -118,7 +100,6 @@ const summaryHeader = ({
|
|
|
118
100
|
}
|
|
119
101
|
}
|
|
120
102
|
}
|
|
121
|
-
|
|
122
103
|
return _cond([[_pipe(_get('type'), _isEqual('success')), () => ({
|
|
123
104
|
type: 'popinEnd',
|
|
124
105
|
title: _getOr('', 'name')(getCurrentContent(state)),
|
|
@@ -140,30 +121,25 @@ const summaryHeader = ({
|
|
|
140
121
|
type: 'popinEnd'
|
|
141
122
|
})]]);
|
|
142
123
|
};
|
|
143
|
-
|
|
144
124
|
const extractRecommendation = ({
|
|
145
125
|
translate
|
|
146
126
|
}, {
|
|
147
127
|
dispatch
|
|
148
128
|
}) => state => {
|
|
149
129
|
const _recommendations = getRecommendations(state);
|
|
150
|
-
|
|
151
130
|
const hasRecommendations = _isNull(_recommendations) || _isArray(_recommendations);
|
|
152
|
-
|
|
153
131
|
if (!hasRecommendations) {
|
|
154
132
|
return null;
|
|
155
133
|
}
|
|
156
|
-
|
|
157
|
-
|
|
134
|
+
const recommendations = _map(recommendation => ({
|
|
135
|
+
...recommendation,
|
|
158
136
|
onClick: () => dispatch(openRecommendation(recommendation))
|
|
159
137
|
}), _recommendations);
|
|
160
|
-
|
|
161
138
|
return {
|
|
162
139
|
title: translate('Related subjects'),
|
|
163
140
|
cards: recommendations
|
|
164
141
|
};
|
|
165
142
|
};
|
|
166
|
-
|
|
167
143
|
const extractAction = ({
|
|
168
144
|
translate
|
|
169
145
|
}, {
|
|
@@ -172,11 +148,12 @@ const extractAction = ({
|
|
|
172
148
|
const nextContent = getNextContent(state);
|
|
173
149
|
return _cond([[_pipe(_get('type'), _isEqual('success')), () => {
|
|
174
150
|
if (_get('nextContentType', nextContent) === 'chapter') {
|
|
175
|
-
return
|
|
151
|
+
return {
|
|
176
152
|
type: 'nextCourse',
|
|
177
153
|
description: translate('Check out the next chapter in this course!'),
|
|
178
|
-
prefix: translate('Next chapter_')
|
|
179
|
-
|
|
154
|
+
prefix: translate('Next chapter_'),
|
|
155
|
+
...nextContent
|
|
156
|
+
};
|
|
180
157
|
} else if (nextContent) {
|
|
181
158
|
// then it is a level
|
|
182
159
|
const {
|
|
@@ -196,13 +173,10 @@ const extractAction = ({
|
|
|
196
173
|
}
|
|
197
174
|
}], [_pipe(_get('type'), _isEqual('failure')), () => {
|
|
198
175
|
const currentContent = getCurrentContent(state);
|
|
199
|
-
|
|
200
176
|
let title = _getOr('', 'name', currentContent);
|
|
201
|
-
|
|
202
177
|
if (isCurrentEngineLearner(state)) {
|
|
203
178
|
title = `${_getOr('', 'name', currentContent)} - ${_getOr('', 'levelTranslation', currentContent)}`;
|
|
204
179
|
}
|
|
205
|
-
|
|
206
180
|
return {
|
|
207
181
|
type: 'simple',
|
|
208
182
|
prefix: isCurrentEngineMicrolearning(state) ? translate('Retry chapter_') : translate('Retry level_'),
|
|
@@ -214,9 +188,7 @@ const extractAction = ({
|
|
|
214
188
|
};
|
|
215
189
|
}], [_constant(true), _constant(null)]]);
|
|
216
190
|
};
|
|
217
|
-
|
|
218
191
|
const extractFeedback = _pipe(_pick(['title', 'description', 'media', 'mediaDescription']), _omit(['media.ref', 'media.subtitles', 'media.posters']));
|
|
219
|
-
|
|
220
192
|
const popinEndStateToProps = (options, store) => {
|
|
221
193
|
const headerProps_ = headerProps(options, store);
|
|
222
194
|
const summaryHeader_ = summaryHeader(options, store);
|
|
@@ -253,6 +225,5 @@ const popinEndStateToProps = (options, store) => {
|
|
|
253
225
|
return props;
|
|
254
226
|
};
|
|
255
227
|
};
|
|
256
|
-
|
|
257
228
|
export default popinEndStateToProps;
|
|
258
229
|
//# sourceMappingURL=popin-end.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"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"],"sources":["../../src/map-state-to-props/popin-end.js"],"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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"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","_get","bestScore","comment","translate","dispatch","progressionId","content","message","isSent","confirmation","commentSectionTitle","confirmationLinkText","onClick","e","edition","title","value","postDisabled","_isEmpty","onChange","target","onPost","ctaForFail","redirection","href","summaryHeader","hide","count","lives","successCta","level","_nextLevel","showNextLevel","_cond","_pipe","_isEqual","type","_getOr","subtitle","failed","rank","cta","_constant","extractRecommendation","_recommendations","hasRecommendations","_isNull","_isArray","recommendations","_map","recommendation","cards","extractAction","nextContent","description","prefix","name","levelTranslation","button","currentContent","extractFeedback","_pick","_omit","popinEndStateToProps","options","store","headerProps_","summaryHeader_","extractAction_","extractRecommendation_","comment_","exitNode","canPostAComment","footer","props","header","mode","popinError","summary","action","feedback"],"sources":["../../src/map-state-to-props/popin-end.js"],"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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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 =\n ({translate}, {dispatch}) =>\n 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"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,18 +5,14 @@ import _pipe from "lodash/fp/pipe";
|
|
|
5
5
|
import _map from "lodash/fp/map";
|
|
6
6
|
import _isEmpty from "lodash/fp/isEmpty";
|
|
7
7
|
import _getOr from "lodash/fp/getOr";
|
|
8
|
-
|
|
9
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
10
|
-
|
|
11
8
|
import { ended, getResourceToPlay, pause, play, resume, selectResource } from '@coorpacademy/player-store';
|
|
12
|
-
|
|
13
9
|
const getResourcesProps = (options, store) => (state, slide) => {
|
|
14
10
|
const {
|
|
15
11
|
dispatch
|
|
16
12
|
} = store;
|
|
17
13
|
const resourceToPlay = getResourceToPlay(state);
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
const lessons = _pipe(_getOr([], 'lessons'), _map(lesson => ({
|
|
15
|
+
..._omit(['id', 'ref'], lesson),
|
|
20
16
|
onClick: () => dispatch(selectResource(lesson._id)),
|
|
21
17
|
onPlay: () => dispatch(play()),
|
|
22
18
|
onResume: () => dispatch(resume(lesson)),
|
|
@@ -24,16 +20,14 @@ const getResourcesProps = (options, store) => (state, slide) => {
|
|
|
24
20
|
onEnded: () => dispatch(ended(lesson)),
|
|
25
21
|
selected: lesson._id === resourceToPlay
|
|
26
22
|
})))(slide);
|
|
27
|
-
|
|
28
23
|
if (_isEmpty(lessons) || _some({
|
|
29
24
|
selected: true
|
|
30
25
|
}, lessons)) {
|
|
31
26
|
return lessons;
|
|
32
|
-
}
|
|
33
|
-
|
|
27
|
+
}
|
|
34
28
|
|
|
29
|
+
// If there are lessons but none are selected, force select the first one
|
|
35
30
|
return _set([0, 'selected'], true, lessons);
|
|
36
31
|
};
|
|
37
|
-
|
|
38
32
|
export default getResourcesProps;
|
|
39
33
|
//# sourceMappingURL=resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","names":["ended","getResourceToPlay","pause","play","resume","selectResource","getResourcesProps","options","store","state","slide","dispatch","resourceToPlay","lessons","lesson","onClick","_id","onPlay","onResume","onPause","onEnded","selected"],"sources":["../../src/map-state-to-props/resources.js"],"sourcesContent":["import {getOr, isEmpty, map, pipe, set, some, omit} from 'lodash/fp';\n\nimport {\n ended,\n getResourceToPlay,\n pause,\n play,\n resume,\n selectResource\n} from '@coorpacademy/player-store';\n\nconst getResourcesProps = (options, store) => (state, slide) => {\n const {dispatch} = store;\n const resourceToPlay = getResourceToPlay(state);\n\n const lessons = pipe(\n getOr([], 'lessons'),\n map(lesson => ({\n ...omit(['id', 'ref'], lesson),\n onClick: () => dispatch(selectResource(lesson._id)),\n onPlay: () => dispatch(play()),\n onResume: () => dispatch(resume(lesson)),\n onPause: () => dispatch(pause(lesson)),\n onEnded: () => dispatch(ended(lesson)),\n selected: lesson._id === resourceToPlay\n }))\n )(slide);\n\n if (isEmpty(lessons) || some({selected: true}, lessons)) {\n return lessons;\n }\n\n // If there are lessons but none are selected, force select the first one\n return set([0, 'selected'], true, lessons);\n};\n\nexport default getResourcesProps;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources.js","names":["ended","getResourceToPlay","pause","play","resume","selectResource","getResourcesProps","options","store","state","slide","dispatch","resourceToPlay","lessons","_pipe","_getOr","_map","lesson","_omit","onClick","_id","onPlay","onResume","onPause","onEnded","selected","_isEmpty","_some","_set"],"sources":["../../src/map-state-to-props/resources.js"],"sourcesContent":["import {getOr, isEmpty, map, pipe, set, some, omit} from 'lodash/fp';\n\nimport {\n ended,\n getResourceToPlay,\n pause,\n play,\n resume,\n selectResource\n} from '@coorpacademy/player-store';\n\nconst getResourcesProps = (options, store) => (state, slide) => {\n const {dispatch} = store;\n const resourceToPlay = getResourceToPlay(state);\n\n const lessons = pipe(\n getOr([], 'lessons'),\n map(lesson => ({\n ...omit(['id', 'ref'], lesson),\n onClick: () => dispatch(selectResource(lesson._id)),\n onPlay: () => dispatch(play()),\n onResume: () => dispatch(resume(lesson)),\n onPause: () => dispatch(pause(lesson)),\n onEnded: () => dispatch(ended(lesson)),\n selected: lesson._id === resourceToPlay\n }))\n )(slide);\n\n if (isEmpty(lessons) || some({selected: true}, lessons)) {\n return lessons;\n }\n\n // If there are lessons but none are selected, force select the first one\n return set([0, 'selected'], true, lessons);\n};\n\nexport default getResourcesProps;\n"],"mappings":";;;;;;;AAEA,SACEA,KAAK,EACLC,iBAAiB,EACjBC,KAAK,EACLC,IAAI,EACJC,MAAM,EACNC,cAAc,QACT,4BAA4B;AAEnC,MAAMC,iBAAiB,GAAGA,CAACC,OAAO,EAAEC,KAAK,KAAK,CAACC,KAAK,EAAEC,KAAK,KAAK;EAC9D,MAAM;IAACC;EAAQ,CAAC,GAAGH,KAAK;EACxB,MAAMI,cAAc,GAAGX,iBAAiB,CAACQ,KAAK,CAAC;EAE/C,MAAMI,OAAO,GAAGC,KAAA,CACdC,MAAA,CAAM,EAAE,EAAE,SAAS,CAAC,EACpBC,IAAA,CAAIC,MAAM,KAAK;IACb,GAAGC,KAAA,CAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAED,MAAM,CAAC;IAC9BE,OAAO,EAAEA,CAAA,KAAMR,QAAQ,CAACN,cAAc,CAACY,MAAM,CAACG,GAAG,CAAC,CAAC;IACnDC,MAAM,EAAEA,CAAA,KAAMV,QAAQ,CAACR,IAAI,CAAC,CAAC,CAAC;IAC9BmB,QAAQ,EAAEA,CAAA,KAAMX,QAAQ,CAACP,MAAM,CAACa,MAAM,CAAC,CAAC;IACxCM,OAAO,EAAEA,CAAA,KAAMZ,QAAQ,CAACT,KAAK,CAACe,MAAM,CAAC,CAAC;IACtCO,OAAO,EAAEA,CAAA,KAAMb,QAAQ,CAACX,KAAK,CAACiB,MAAM,CAAC,CAAC;IACtCQ,QAAQ,EAAER,MAAM,CAACG,GAAG,KAAKR;EAC3B,CAAC,CAAC,CACJ,CAAC,CAACF,KAAK,CAAC;EAER,IAAIgB,QAAA,CAAQb,OAAO,CAAC,IAAIc,KAAA,CAAK;IAACF,QAAQ,EAAE;EAAI,CAAC,EAAEZ,OAAO,CAAC,EAAE;IACvD,OAAOA,OAAO;EAChB;;EAEA;EACA,OAAOe,IAAA,CAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,IAAI,EAAEf,OAAO,CAAC;AAC5C,CAAC;AAED,eAAeP,iBAAiB","ignoreList":[]}
|
|
@@ -3,13 +3,11 @@ import _mapValues from "lodash/fp/mapValues";
|
|
|
3
3
|
import _ from "lodash/fp/__";
|
|
4
4
|
import createPlayerStateToProps from './player';
|
|
5
5
|
import mapStateToErrorPopinProps from './error-popin';
|
|
6
|
-
|
|
7
6
|
const playerProps = (options, dispatch) => {
|
|
8
7
|
return _pipe(state => mapStateToProps => mapStateToProps(state), _mapValues(_, {
|
|
9
8
|
player: createPlayerStateToProps(options, dispatch),
|
|
10
9
|
popin: mapStateToErrorPopinProps(dispatch)
|
|
11
10
|
}));
|
|
12
11
|
};
|
|
13
|
-
|
|
14
12
|
export default playerProps;
|
|
15
13
|
//# sourceMappingURL=slide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slide.js","names":["createPlayerStateToProps","mapStateToErrorPopinProps","playerProps","options","dispatch","state","mapStateToProps","player","popin"],"sources":["../../src/map-state-to-props/slide.js"],"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"],"mappings":";;;AAEA,OAAOA,
|
|
1
|
+
{"version":3,"file":"slide.js","names":["createPlayerStateToProps","mapStateToErrorPopinProps","playerProps","options","dispatch","_pipe","state","mapStateToProps","_mapValues","_","player","popin"],"sources":["../../src/map-state-to-props/slide.js"],"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"],"mappings":";;;AAEA,OAAOA,wBAAwB,MAAM,UAAU;AAC/C,OAAOC,yBAAyB,MAAM,eAAe;AAErD,MAAMC,WAAW,GAAGA,CAACC,OAAO,EAAEC,QAAQ,KAAK;EACzC,OAAOC,KAAA,CACLC,KAAK,IAAIC,eAAe,IAAIA,eAAe,CAACD,KAAK,CAAC,EAClDE,UAAA,CAAAC,CAAA,EAAc;IACZC,MAAM,EAAEV,wBAAwB,CAACG,OAAO,EAAEC,QAAQ,CAAC;IACnDO,KAAK,EAAEV,yBAAyB,CAACG,QAAQ;EAC3C,CAAC,CACH,CAAC;AACH,CAAC;AAED,eAAeF,WAAW","ignoreList":[]}
|