@coorpacademy/components 11.4.2 → 11.4.4-alpha.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.js"],"names":[],"mappings":";AAiIA,sDA8CC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.js"],"names":[],"mappings":";AA6JA,sDA8CC"}
@@ -1,6 +1,6 @@
1
1
  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); }
2
2
 
3
- import React, { useMemo } from 'react';
3
+ import React, { useMemo, useEffect } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import classnames from 'classnames';
6
6
  import get from 'lodash/fp/get';
@@ -38,7 +38,22 @@ const CorrectionPopin = ({
38
38
  information,
39
39
  type: correctionPopinProps.type,
40
40
  resultLabel: correctionPopinProps.resultLabel
41
- };
41
+ }; // there is an error of eslint here because this useEffect will be only there when the correctionPopin will be there
42
+ // but that is on purpose to go to the next slide if you press enter when the correctionPopin is present
43
+ // istanbul ignore next
44
+ // eslint-disable-next-line react-hooks/rules-of-hooks
45
+
46
+ useEffect(() => {
47
+ const keyDownHandler = event => {
48
+ if (event.key === 'Enter' || event.key === ' ') {
49
+ event.preventDefault();
50
+ onClick();
51
+ document.removeEventListener('keydown', keyDownHandler);
52
+ }
53
+ };
54
+
55
+ document.addEventListener('keydown', keyDownHandler);
56
+ }, []);
42
57
  return /*#__PURE__*/React.createElement("div", {
43
58
  className: classnames(style.correctionPopinWrapper, animateCorrectionPopin ? style.popinAnimation : null)
44
59
  }, /*#__PURE__*/React.createElement(ReviewCorrectionPopin, _correctionPopinProps));
@@ -73,6 +88,20 @@ const ValidateButton = ({
73
88
  backgroundColor: primarySkinColor
74
89
  }
75
90
  };
91
+ /* istanbul ignore next */
92
+
93
+ useEffect(() => {
94
+ const keyDownHandler = event => {
95
+ if (event.key === 'Enter' || event.key === ' ') {
96
+ event.preventDefault();
97
+ }
98
+ };
99
+
100
+ if (disabled) document.addEventListener('keydown', keyDownHandler);
101
+ return () => {
102
+ document.removeEventListener('keydown', keyDownHandler);
103
+ };
104
+ }, [disabled]);
76
105
  return /*#__PURE__*/React.createElement("div", {
77
106
  key: "button-wrapper",
78
107
  className: style.validateButtonWrapper
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","ReviewCorrectionPopin","GetSkinFromContext","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","disableContent","slideContentContainer","disabledSlideContent","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","disabledContent","loader"],"sources":["../../../src/organism/review-slide/index.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin, disableContent} = props;\n if (!answerUI || !questionText) return null;\n\n return (\n <div\n key=\"content-container\"\n data-testid=\"content-container\"\n className={classnames(\n style.slideContentContainer,\n disableContent ? style.disabledSlideContent : null\n )}\n >\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n data-testid=\"slide-question\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div\n key=\"help\"\n className={style.help}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: get('help', answerUI)}}\n />\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerUI} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string,\n disableContent: PropTypes.bool\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n disabledContent,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-testid=\"review-slide\" className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n <>\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n disableContent={disabledContent}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n </>\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useEffect","PropTypes","classnames","get","getOr","Answer","ButtonLink","Loader","ReviewCorrectionPopin","GetSkinFromContext","propTypes","style","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","keyDownHandler","event","key","preventDefault","document","removeEventListener","addEventListener","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","disableContent","slideContentContainer","disabledSlideContent","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","disabledContent","loader"],"sources":["../../../src/organism/review-slide/index.js"],"sourcesContent":["import React, {useMemo, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n // there is an error of eslint here because this useEffect will be only there when the correctionPopin will be there\n // but that is on purpose to go to the next slide if you press enter when the correctionPopin is present\n // istanbul ignore next\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const keyDownHandler = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n document.removeEventListener('keydown', keyDownHandler);\n }\n };\n document.addEventListener('keydown', keyDownHandler);\n }, []);\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n };\n\n /* istanbul ignore next */\n useEffect(() => {\n const keyDownHandler = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n }\n };\n if (disabled) document.addEventListener('keydown', keyDownHandler);\n return () => {\n document.removeEventListener('keydown', keyDownHandler);\n };\n }, [disabled]);\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin, disableContent} = props;\n if (!answerUI || !questionText) return null;\n\n return (\n <div\n key=\"content-container\"\n data-testid=\"content-container\"\n className={classnames(\n style.slideContentContainer,\n disableContent ? style.disabledSlideContent : null\n )}\n >\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n data-testid=\"slide-question\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div\n key=\"help\"\n className={style.help}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: get('help', answerUI)}}\n />\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerUI} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string,\n disableContent: PropTypes.bool\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n disabledContent,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-testid=\"review-slide\" className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n <>\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n disableContent={disabledContent}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n </>\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import React, { useEffect, useState } from 'react';
2
2
  import { Animated, Easing, StyleSheet, useWindowDimensions } from 'react-native';
3
3
  import keys from 'lodash/fp/keys';
4
- import { useTranslateY } from '@coorpacademy/react-native-animation';
4
+ import { useAnimateProp, useTranslateY } from '@coorpacademy/react-native-animation';
5
5
  import Slide from '../review-slide/index.native';
6
6
  const style = StyleSheet.create({
7
7
  slides: {
@@ -40,11 +40,11 @@ const StackedSlides = props => {
40
40
  duration: 500,
41
41
  easing: Easing.cubic
42
42
  });
43
- const restackTranslation = useTranslateY({
44
- toValue: 0,
45
- fromValue: windowHeight,
46
- duration: 1200,
47
- easing: Easing.out(Easing.cubic)
43
+ const restackTranslation = useAnimateProp({
44
+ property: 'opacity',
45
+ toValue: 1,
46
+ fromValue: 0,
47
+ duration: 700
48
48
  });
49
49
  useEffect(() => {
50
50
  if (endReview) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","keys","useTranslateY","Slide","style","create","slides","flex","height","width","StackedSlides","props","windowHeight","endReview","validateButton","correctionPopinProps","unstacked","setUnstacked","restacking","setRestacking","restackingDone","setRestackingDone","hideSlides","fromValue","toValue","duration","translateDown","easing","cubic","restackTranslation","out","start","restackingSlide","find","k","animationType","unstackingSlide","remainingKeys","filter","position","orderedKeys","sort","k1","k2","animatedFrontSlide","undefined","animatedRestackedSlide","includes","toString","unstacking","startRestacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewStackProps} from './prop-types';\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacking, setRestacking] = useState<string | null>(null);\n const [restackingDone, setRestackingDone] = useState<boolean>(false);\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n const restackTranslation = useTranslateY({\n toValue: 0,\n fromValue: windowHeight,\n duration: 1200,\n easing: Easing.out(Easing.cubic)\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedFrontSlide =\n unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);\n\n const animatedRestackedSlide = restacking !== null;\n\n useEffect(() => {\n if (restacking !== null && orderedKeys.includes(restacking)) {\n setRestacking(null);\n setRestackingDone(false);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;\n\n if (startRestacking) {\n translateDown.start(() => {\n setRestacking(restackingSlide);\n restackTranslation.start(() => {\n setRestackingDone(true);\n });\n });\n }\n // this effect is required only to trigger the restack animation when a new restackingSlide is set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restackingSlide, restacking]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n const num = orderedKeys.length - index;\n\n return (\n <Slide\n {...{\n num,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedFrontSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedFrontSlide,\n slide: slides[animatedFrontSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedFrontSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {animatedRestackedSlide ? (\n <Slide\n {...{\n num: orderedKeys.length + 1,\n slideIndex: restacking,\n slide: slides[restacking],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[restackTranslation.animatedStyle]}\n key={restacking}\n />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","keys","useAnimateProp","useTranslateY","Slide","style","create","slides","flex","height","width","StackedSlides","props","windowHeight","endReview","validateButton","correctionPopinProps","unstacked","setUnstacked","restacking","setRestacking","restackingDone","setRestackingDone","hideSlides","fromValue","toValue","duration","translateDown","easing","cubic","restackTranslation","property","start","restackingSlide","find","k","animationType","unstackingSlide","remainingKeys","filter","position","orderedKeys","sort","k1","k2","animatedFrontSlide","undefined","animatedRestackedSlide","includes","toString","unstacking","startRestacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useAnimateProp, useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewStackProps} from './prop-types';\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacking, setRestacking] = useState<string | null>(null);\n const [restackingDone, setRestackingDone] = useState<boolean>(false);\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n const restackTranslation = useAnimateProp({\n property: 'opacity',\n toValue: 1,\n fromValue: 0,\n duration: 700\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedFrontSlide =\n unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);\n\n const animatedRestackedSlide = restacking !== null;\n\n useEffect(() => {\n if (restacking !== null && orderedKeys.includes(restacking)) {\n setRestacking(null);\n setRestackingDone(false);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;\n\n if (startRestacking) {\n translateDown.start(() => {\n setRestacking(restackingSlide);\n restackTranslation.start(() => {\n setRestackingDone(true);\n });\n });\n }\n // this effect is required only to trigger the restack animation when a new restackingSlide is set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restackingSlide, restacking]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n const num = orderedKeys.length - index;\n\n return (\n <Slide\n {...{\n num,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedFrontSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedFrontSlide,\n slide: slides[animatedFrontSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedFrontSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {animatedRestackedSlide ? (\n <Slide\n {...{\n num: orderedKeys.length + 1,\n slideIndex: restacking,\n slide: slides[restacking],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[restackTranslation.animatedStyle]}\n key={restacking}\n />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.js"],"names":[],"mappings":";AAiIA,sDA8CC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.js"],"names":[],"mappings":";AA6JA,sDA8CC"}
@@ -60,7 +60,22 @@ const CorrectionPopin = ({
60
60
  information,
61
61
  type: correctionPopinProps.type,
62
62
  resultLabel: correctionPopinProps.resultLabel
63
- };
63
+ }; // there is an error of eslint here because this useEffect will be only there when the correctionPopin will be there
64
+ // but that is on purpose to go to the next slide if you press enter when the correctionPopin is present
65
+ // istanbul ignore next
66
+ // eslint-disable-next-line react-hooks/rules-of-hooks
67
+
68
+ (0, _react.useEffect)(() => {
69
+ const keyDownHandler = event => {
70
+ if (event.key === 'Enter' || event.key === ' ') {
71
+ event.preventDefault();
72
+ onClick();
73
+ document.removeEventListener('keydown', keyDownHandler);
74
+ }
75
+ };
76
+
77
+ document.addEventListener('keydown', keyDownHandler);
78
+ }, []);
64
79
  return /*#__PURE__*/_react.default.createElement("div", {
65
80
  className: (0, _classnames.default)(_style.default.correctionPopinWrapper, animateCorrectionPopin ? _style.default.popinAnimation : null)
66
81
  }, /*#__PURE__*/_react.default.createElement(_reviewCorrectionPopin.default, _correctionPopinProps));
@@ -95,6 +110,20 @@ const ValidateButton = ({
95
110
  backgroundColor: primarySkinColor
96
111
  }
97
112
  };
113
+ /* istanbul ignore next */
114
+
115
+ (0, _react.useEffect)(() => {
116
+ const keyDownHandler = event => {
117
+ if (event.key === 'Enter' || event.key === ' ') {
118
+ event.preventDefault();
119
+ }
120
+ };
121
+
122
+ if (disabled) document.addEventListener('keydown', keyDownHandler);
123
+ return () => {
124
+ document.removeEventListener('keydown', keyDownHandler);
125
+ };
126
+ }, [disabled]);
98
127
  return /*#__PURE__*/_react.default.createElement("div", {
99
128
  key: "button-wrapper",
100
129
  className: _style.default.validateButtonWrapper
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","getOr","information","label","message","next","get","onClick","_correctionPopinProps","type","resultLabel","classnames","style","correctionPopinWrapper","popinAnimation","propTypes","PropTypes","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","disableContent","slideContentContainer","disabledSlideContent","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","GetSkinFromContext","useMemo","loading","loadingAriaLabel","parentContentTitle","disabledContent","loader"],"sources":["../../../src/organism/review-slide/index.js"],"sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n };\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin, disableContent} = props;\n if (!answerUI || !questionText) return null;\n\n return (\n <div\n key=\"content-container\"\n data-testid=\"content-container\"\n className={classnames(\n style.slideContentContainer,\n disableContent ? style.disabledSlideContent : null\n )}\n >\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n data-testid=\"slide-question\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div\n key=\"help\"\n className={style.help}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: get('help', answerUI)}}\n />\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerUI} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string,\n disableContent: PropTypes.bool\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n disabledContent,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-testid=\"review-slide\" className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n <>\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n disableContent={disabledContent}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n </>\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","getOr","information","label","message","next","get","onClick","_correctionPopinProps","type","resultLabel","useEffect","keyDownHandler","event","key","preventDefault","document","removeEventListener","addEventListener","classnames","style","correctionPopinWrapper","popinAnimation","propTypes","PropTypes","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","disableContent","slideContentContainer","disabledSlideContent","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","GetSkinFromContext","useMemo","loading","loadingAriaLabel","parentContentTitle","disabledContent","loader"],"sources":["../../../src/organism/review-slide/index.js"],"sourcesContent":["import React, {useMemo, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport Answer from '../../molecule/answer';\nimport ButtonLink from '../../atom/button-link';\nimport Loader from '../../atom/loader';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin';\nimport {GetSkinFromContext} from '../../atom/provider';\nimport propTypes from './prop-types';\nimport style from './style.css';\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}) => {\n if (!showCorrectionPopin) return null;\n\n const klf = getOr({}, 'klf', correctionPopinProps);\n const information = getOr({label: '', message: ''}, 'information', correctionPopinProps);\n const next = get('next', correctionPopinProps);\n const onClick = get(['next', 'onClick'], correctionPopinProps);\n\n const _correctionPopinProps = {\n next: {\n onClick,\n label: next && next.label,\n 'data-name': `next-question-button-${slideIndex}`,\n 'aria-label': next && next['aria-label']\n },\n klf,\n information,\n type: correctionPopinProps.type,\n resultLabel: correctionPopinProps.resultLabel\n };\n\n // there is an error of eslint here because this useEffect will be only there when the correctionPopin will be there\n // but that is on purpose to go to the next slide if you press enter when the correctionPopin is present\n // istanbul ignore next\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n const keyDownHandler = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n document.removeEventListener('keydown', keyDownHandler);\n }\n };\n document.addEventListener('keydown', keyDownHandler);\n }, []);\n\n return (\n <div\n className={classnames(\n style.correctionPopinWrapper,\n animateCorrectionPopin ? style.popinAnimation : null\n )}\n >\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </div>\n );\n};\n\nCorrectionPopin.propTypes = {\n slideIndex: PropTypes.string,\n showCorrectionPopin: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n correctionPopinProps: propTypes.correctionPopinProps\n};\n\nconst ValidateButton = ({slideIndex, validateButton, primarySkinColor}) => {\n const {label, onClick, disabled} = validateButton;\n const validateButtonProps = {\n type: 'primary',\n label,\n 'aria-label': label,\n 'data-name': `slide-validate-button-${slideIndex}`,\n onClick,\n disabled,\n className: style.validateButton,\n customStyle: {\n backgroundColor: primarySkinColor\n }\n };\n\n /* istanbul ignore next */\n useEffect(() => {\n const keyDownHandler = event => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n }\n };\n if (disabled) document.addEventListener('keydown', keyDownHandler);\n return () => {\n document.removeEventListener('keydown', keyDownHandler);\n };\n }, [disabled]);\n\n return (\n <div key=\"button-wrapper\" className={style.validateButtonWrapper}>\n <ButtonLink {...validateButtonProps} />\n </div>\n );\n};\n\nValidateButton.propTypes = {\n slideIndex: PropTypes.string,\n validateButton: propTypes.validateButton,\n primarySkinColor: PropTypes.string\n};\n\nconst QuestionContainer = props => {\n const {answerUI, questionText, questionOrigin, disableContent} = props;\n if (!answerUI || !questionText) return null;\n\n return (\n <div\n key=\"content-container\"\n data-testid=\"content-container\"\n className={classnames(\n style.slideContentContainer,\n disableContent ? style.disabledSlideContent : null\n )}\n >\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n data-testid=\"slide-question\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div\n key=\"help\"\n className={style.help}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: get('help', answerUI)}}\n />\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerUI} key=\"answer\" />\n </div>\n </div>\n );\n};\n\nQuestionContainer.propTypes = {\n answerUI: PropTypes.shape(propTypes.slide.answerUI),\n questionText: PropTypes.string,\n questionOrigin: PropTypes.string,\n disableContent: PropTypes.bool\n};\n\nconst ReviewSlide = props => {\n const {slide, validateButton, correctionPopinProps, slideIndex = '0'} = props;\n\n const skin = GetSkinFromContext();\n const primarySkinColor = useMemo(() => getOr('#00B0FF', 'common.primary', skin), [skin]);\n const {\n loading,\n loadingAriaLabel,\n parentContentTitle,\n questionText,\n disabledContent,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-testid=\"review-slide\" className={style.slide}>\n {loading ? (\n <Loader className={style.loader} theme=\"default\" aria-label={loadingAriaLabel} />\n ) : (\n <>\n <QuestionContainer\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n disableContent={disabledContent}\n key=\"question-container\"\n />\n <ValidateButton\n slideIndex={slideIndex}\n validateButton={validateButton}\n primarySkinColor={primarySkinColor}\n key=\"validate-button\"\n />\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n </>\n )}\n </div>\n );\n};\n\nReviewSlide.propTypes = propTypes;\n\nexport default ReviewSlide;\n"],"mappings":"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"}
@@ -57,11 +57,11 @@ const StackedSlides = props => {
57
57
  duration: 500,
58
58
  easing: _reactNative.Easing.cubic
59
59
  });
60
- const restackTranslation = (0, _reactNativeAnimation.useTranslateY)({
61
- toValue: 0,
62
- fromValue: windowHeight,
63
- duration: 1200,
64
- easing: _reactNative.Easing.out(_reactNative.Easing.cubic)
60
+ const restackTranslation = (0, _reactNativeAnimation.useAnimateProp)({
61
+ property: 'opacity',
62
+ toValue: 1,
63
+ fromValue: 0,
64
+ duration: 700
65
65
  });
66
66
  (0, _react.useEffect)(() => {
67
67
  if (endReview) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["style","StyleSheet","create","slides","flex","height","width","StackedSlides","props","windowHeight","useWindowDimensions","endReview","validateButton","correctionPopinProps","unstacked","setUnstacked","useState","restacking","setRestacking","restackingDone","setRestackingDone","hideSlides","useTranslateY","fromValue","toValue","duration","translateDown","easing","Easing","cubic","restackTranslation","out","useEffect","start","restackingSlide","keys","find","k","animationType","unstackingSlide","remainingKeys","filter","position","orderedKeys","sort","k1","k2","animatedFrontSlide","undefined","animatedRestackedSlide","includes","toString","unstacking","startRestacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewStackProps} from './prop-types';\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacking, setRestacking] = useState<string | null>(null);\n const [restackingDone, setRestackingDone] = useState<boolean>(false);\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n const restackTranslation = useTranslateY({\n toValue: 0,\n fromValue: windowHeight,\n duration: 1200,\n easing: Easing.out(Easing.cubic)\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedFrontSlide =\n unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);\n\n const animatedRestackedSlide = restacking !== null;\n\n useEffect(() => {\n if (restacking !== null && orderedKeys.includes(restacking)) {\n setRestacking(null);\n setRestackingDone(false);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;\n\n if (startRestacking) {\n translateDown.start(() => {\n setRestacking(restackingSlide);\n restackTranslation.start(() => {\n setRestackingDone(true);\n });\n });\n }\n // this effect is required only to trigger the restack animation when a new restackingSlide is set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restackingSlide, restacking]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n const num = orderedKeys.length - index;\n\n return (\n <Slide\n {...{\n num,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedFrontSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedFrontSlide,\n slide: slides[animatedFrontSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedFrontSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {animatedRestackedSlide ? (\n <Slide\n {...{\n num: orderedKeys.length + 1,\n slideIndex: restacking,\n slide: slides[restacking],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[restackTranslation.animatedStyle]}\n key={restacking}\n />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["style","StyleSheet","create","slides","flex","height","width","StackedSlides","props","windowHeight","useWindowDimensions","endReview","validateButton","correctionPopinProps","unstacked","setUnstacked","useState","restacking","setRestacking","restackingDone","setRestackingDone","hideSlides","useTranslateY","fromValue","toValue","duration","translateDown","easing","Easing","cubic","restackTranslation","useAnimateProp","property","useEffect","start","restackingSlide","keys","find","k","animationType","unstackingSlide","remainingKeys","filter","position","orderedKeys","sort","k1","k2","animatedFrontSlide","undefined","animatedRestackedSlide","includes","toString","unstacking","startRestacking","stackedSlides","map","slideIndex","index","slide","num","length","push","animatedStyle"],"sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {Animated, Easing, StyleSheet, useWindowDimensions} from 'react-native';\nimport keys from 'lodash/fp/keys';\nimport {useAnimateProp, useTranslateY} from '@coorpacademy/react-native-animation';\nimport Slide from '../review-slide/index.native';\nimport type {ReviewStackProps} from './prop-types';\n\nconst style = StyleSheet.create({\n slides: {\n flex: 1,\n height: '100%',\n width: '100%'\n }\n});\n\n/*\n - slides are ordered to be played from left to right: [0,1,2,3]\n - slides are piled on the view, so we need to reverse the order:\n -> it's like our eye is looking from the right [3,2,1,0] <-- oO\n*/\nconst StackedSlides = (props: ReviewStackProps) => {\n const {height: windowHeight} = useWindowDimensions();\n const {endReview, slides, validateButton, correctionPopinProps} = props;\n const [unstacked, setUnstacked] = useState<string[]>([]);\n const [restacking, setRestacking] = useState<string | null>(null);\n const [restackingDone, setRestackingDone] = useState<boolean>(false);\n\n const hideSlides = useTranslateY({\n fromValue: 0,\n toValue: windowHeight,\n duration: 800\n });\n\n const translateDown = useTranslateY({\n fromValue: 0,\n toValue: windowHeight - 100,\n duration: 500,\n easing: Easing.cubic\n });\n\n const restackTranslation = useAnimateProp({\n property: 'opacity',\n toValue: 1,\n fromValue: 0,\n duration: 700\n });\n\n useEffect(() => {\n if (endReview) {\n hideSlides.start();\n }\n }, [endReview, hideSlides]);\n\n const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');\n const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');\n\n const remainingKeys = keys(slides).filter(\n k => slides[k].position >= 0 && !slides[k].animationType\n );\n\n const orderedKeys = remainingKeys.sort((k1, k2) =>\n slides[k2].position > slides[k1].position ? 1 : -1\n );\n\n const animatedFrontSlide =\n unstackingSlide || (restackingSlide && restacking === null ? restackingSlide : undefined);\n\n const animatedRestackedSlide = restacking !== null;\n\n useEffect(() => {\n if (restacking !== null && orderedKeys.includes(restacking)) {\n setRestacking(null);\n setRestackingDone(false);\n }\n // this effect is required only when the list orderedKeys changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orderedKeys.toString()]);\n\n useEffect(() => {\n const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);\n\n if (unstacking) {\n translateDown.start(() => {\n setUnstacked([...unstacked, unstackingSlide]);\n });\n }\n }, [unstackingSlide, unstacked, setUnstacked, translateDown]);\n\n useEffect(() => {\n const startRestacking = !restackingDone && restackingSlide && restacking !== restackingSlide;\n\n if (startRestacking) {\n translateDown.start(() => {\n setRestacking(restackingSlide);\n restackTranslation.start(() => {\n setRestackingDone(true);\n });\n });\n }\n // this effect is required only to trigger the restack animation when a new restackingSlide is set\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [restackingSlide, restacking]);\n\n const stackedSlides = orderedKeys.map((slideIndex, index) => {\n const slide = slides[slideIndex];\n const num = orderedKeys.length - index;\n\n return (\n <Slide\n {...{\n num,\n slideIndex,\n slide,\n validateButton,\n correctionPopinProps\n }}\n key={slideIndex}\n />\n );\n });\n\n if (animatedFrontSlide) {\n stackedSlides.push(\n <Slide\n {...{\n num: 0,\n slideIndex: animatedFrontSlide,\n slide: slides[animatedFrontSlide],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[translateDown.animatedStyle]}\n key={animatedFrontSlide}\n />\n );\n }\n\n return (\n <Animated.View style={[style.slides, hideSlides.animatedStyle]}>\n {animatedRestackedSlide ? (\n <Slide\n {...{\n num: orderedKeys.length + 1,\n slideIndex: restacking,\n slide: slides[restacking],\n validateButton,\n correctionPopinProps\n }}\n animatedStyle={[restackTranslation.animatedStyle]}\n key={restacking}\n />\n ) : null}\n {stackedSlides}\n </Animated.View>\n );\n};\n\nexport default StackedSlides;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.4.2",
3
+ "version": "11.4.4-alpha.2+fb712e9b9",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -56,7 +56,7 @@
56
56
  "Soualmi Djamel <djamel.soualmi@coorpacademy.com>"
57
57
  ],
58
58
  "dependencies": {
59
- "@coorpacademy/nova-icons": "4.1.1",
59
+ "@coorpacademy/nova-icons": "4.1.2",
60
60
  "@coorpacademy/react-native-animation": "1.0.2",
61
61
  "@jwplayer/jwplayer-react": "^1.1.0",
62
62
  "@types/react": "^17.0.50",
@@ -160,5 +160,5 @@
160
160
  "last 2 versions",
161
161
  "IE 11"
162
162
  ],
163
- "gitHead": "9d748ee6196fddfbfffb22378a95754537ec933b"
163
+ "gitHead": "fb712e9b9314d6fbb051933d094a21da7bf2553e"
164
164
  }