@coorpacademy/components 10.22.22 → 10.22.24-alpha.5

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/README.md CHANGED
@@ -171,6 +171,7 @@ You may need to install these optional libs depending on which native components
171
171
  - `react-native-render-html`
172
172
  - `react-native-linear-gradient`
173
173
  - `@coorpacademy/react-native-slider`
174
+ - `@react-native-community/blur`
174
175
 
175
176
  ## Troubleshooting
176
177
 
@@ -0,0 +1,124 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import { View, StyleSheet, Text } from 'react-native';
3
+ import { BlurView } from '@react-native-community/blur';
4
+ import { NovaCompositionNavigationNavBar as BlurredShadow } from '@coorpacademy/nova-icons';
5
+ import { useTemplateContext } from '../../template/app-review/template-context';
6
+
7
+ const createStyleSheet = theme => StyleSheet.create({
8
+ main: {
9
+ marginHorizontal: 20
10
+ },
11
+ container: {
12
+ position: 'absolute',
13
+ bottom: 34,
14
+ width: '100%',
15
+ flexDirection: 'row',
16
+ justifyContent: 'space-between',
17
+ alignSelf: 'center',
18
+ overflow: 'hidden',
19
+ height: 66,
20
+ borderRadius: 12,
21
+ backgroundColor: theme.colors.gray.light
22
+ },
23
+ button: {
24
+ alignItems: 'center',
25
+ flex: 1,
26
+ height: '100%',
27
+ marginTop: theme.spacing.small
28
+ },
29
+ buttonText: {
30
+ fontSize: theme.fontSize.small,
31
+ lineHeight: 26,
32
+ // height: 11,
33
+ color: theme.colors.text.primary
34
+ },
35
+ dot: {
36
+ width: 8,
37
+ height: 8,
38
+ borderRadius: 8,
39
+ backgroundColor: theme.colors.cta,
40
+ marginTop: 3,
41
+ position: 'absolute',
42
+ alignSelf: 'center'
43
+ },
44
+ blur: {
45
+ marginTop: -87,
46
+ width: 200,
47
+ height: 100,
48
+ position: 'absolute',
49
+ alignSelf: 'center',
50
+ transform: [{
51
+ rotateX: '180deg'
52
+ }, {
53
+ scaleX: 0.7
54
+ }]
55
+ }
56
+ });
57
+
58
+ const Button = ({
59
+ testID,
60
+ title,
61
+ selected,
62
+ Icon,
63
+ styles,
64
+ theme
65
+ }) => /*#__PURE__*/React.createElement(View, {
66
+ testID: testID,
67
+ style: styles.button
68
+ }, /*#__PURE__*/React.createElement(View, {
69
+ style: {
70
+ alignItems: 'center'
71
+ }
72
+ }, /*#__PURE__*/React.createElement(Icon, {
73
+ height: 16,
74
+ width: 16,
75
+ color: selected ? theme.colors.cta : theme.colors.text.primary
76
+ }), /*#__PURE__*/React.createElement(Text, {
77
+ style: styles.buttonText
78
+ }, title)), selected ? /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
79
+ style: styles.dot
80
+ }), /*#__PURE__*/React.createElement(BlurredShadow, {
81
+ color: theme.colors.cta,
82
+ style: styles.blur
83
+ })) : null);
84
+
85
+ const NavigationBar = ({
86
+ items,
87
+ selectedItemIndex
88
+ }) => {
89
+ const templateContext = useTemplateContext();
90
+ const [styleSheet, setStylesheet] = useState(null);
91
+ const {
92
+ theme
93
+ } = templateContext;
94
+ useEffect(() => {
95
+ const _stylesheet = createStyleSheet(theme);
96
+
97
+ setStylesheet(_stylesheet);
98
+ }, [theme]);
99
+
100
+ if (!styleSheet) {
101
+ return null;
102
+ }
103
+
104
+ return /*#__PURE__*/React.createElement(View, {
105
+ style: styleSheet.main
106
+ }, /*#__PURE__*/React.createElement(BlurView, {
107
+ style: styleSheet.container,
108
+ blurAmount: 32,
109
+ reducedTransparencyFallbackColor: "rgba(17, 17, 23, 0.5)"
110
+ }), /*#__PURE__*/React.createElement(View, {
111
+ style: styleSheet.container
112
+ }, items.map((prop, index) => /*#__PURE__*/React.createElement(Button, {
113
+ key: `button-${prop.label}`,
114
+ title: prop.label,
115
+ Icon: prop.icon,
116
+ selected: index === selectedItemIndex,
117
+ testID: `navigationButton_${index}`,
118
+ styles: styleSheet,
119
+ theme: theme
120
+ }))));
121
+ };
122
+
123
+ export default NavigationBar;
124
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/organism/mobile-navigation/index.native.tsx"],"names":["React","useState","useEffect","View","StyleSheet","Text","BlurView","NovaCompositionNavigationNavBar","BlurredShadow","useTemplateContext","createStyleSheet","theme","create","main","marginHorizontal","container","position","bottom","width","flexDirection","justifyContent","alignSelf","overflow","height","borderRadius","backgroundColor","colors","gray","light","button","alignItems","flex","marginTop","spacing","small","buttonText","fontSize","lineHeight","color","text","primary","dot","cta","blur","transform","rotateX","scaleX","Button","testID","title","selected","Icon","styles","NavigationBar","items","selectedItemIndex","templateContext","styleSheet","setStylesheet","_stylesheet","map","prop","index","label","icon"],"mappings":"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","sourcesContent":["import React, {useState, useEffect} from 'react';\nimport {View, StyleSheet, Text} from 'react-native';\nimport {BlurView} from '@react-native-community/blur';\n\nimport {NovaCompositionNavigationNavBar as BlurredShadow} from '@coorpacademy/nova-icons';\n\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {\n Position,\n FlexDirection,\n JustifyContent,\n AlignSelf,\n Overflow,\n FlexAlignType,\n FontSize\n} from '../../types/styles';\nimport {Theme} from '../../variables/theme.native';\n\nexport type NavItemType = {\n label: string;\n icon: any;\n onPress: () => void;\n};\n\nexport interface Props {\n testID?: string;\n items: Array<NavItemType>;\n selectedItemIndex: number;\n}\n\ntype StyleSheetType = {\n main: {\n marginHorizontal: number;\n };\n container: {\n position: Position;\n bottom: number;\n width: string;\n flexDirection: FlexDirection;\n justifyContent: JustifyContent;\n alignSelf: AlignSelf;\n overflow: Overflow;\n height: number;\n borderRadius: number;\n backgroundColor: string;\n };\n button: {\n alignItems: FlexAlignType;\n flex: number;\n height: string;\n marginTop: number;\n };\n buttonText: {\n fontSize: FontSize;\n lineHeight: number;\n color: string;\n };\n\n dot: {\n width: number;\n height: number;\n borderRadius: number;\n backgroundColor: string;\n marginTop: number;\n };\n blur: {\n marginTop: number;\n width: number;\n height: number;\n };\n};\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n main: {\n marginHorizontal: 20\n },\n container: {\n position: 'absolute',\n bottom: 34,\n width: '100%',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignSelf: 'center',\n overflow: 'hidden',\n height: 66,\n borderRadius: 12,\n backgroundColor: theme.colors.gray.light\n },\n button: {\n alignItems: 'center',\n flex: 1,\n height: '100%',\n marginTop: theme.spacing.small\n },\n buttonText: {\n fontSize: theme.fontSize.small,\n lineHeight: 26,\n // height: 11,\n color: theme.colors.text.primary\n },\n\n dot: {\n width: 8,\n height: 8,\n borderRadius: 8,\n backgroundColor: theme.colors.cta,\n marginTop: 3,\n position: 'absolute',\n alignSelf: 'center'\n },\n blur: {\n marginTop: -87,\n width: 200,\n height: 100,\n position: 'absolute',\n alignSelf: 'center',\n transform: [{rotateX: '180deg'}, {scaleX: 0.7}]\n }\n });\n\ninterface ButtonProps {\n title: string;\n testID: string;\n selected: boolean;\n Icon: any;\n styles: StyleSheetType;\n theme: Theme;\n}\n\nconst Button = ({testID, title, selected, Icon, styles, theme}: ButtonProps) => (\n <View testID={testID} style={styles.button}>\n <View style={{alignItems: 'center'}}>\n <Icon\n height={16}\n width={16}\n color={selected ? theme.colors.cta : theme.colors.text.primary}\n />\n <Text style={styles.buttonText}>{title}</Text>\n </View>\n {selected ? (\n <View>\n <View style={styles.dot} />\n <BlurredShadow color={theme.colors.cta} style={styles.blur} />\n </View>\n ) : null}\n </View>\n);\n\nconst NavigationBar = ({items, selectedItemIndex}: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {theme} = templateContext;\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={styleSheet.main}>\n <BlurView\n style={styleSheet.container}\n blurAmount={32}\n reducedTransparencyFallbackColor=\"rgba(17, 17, 23, 0.5)\"\n />\n <View style={styleSheet.container}>\n {items.map((prop, index) => (\n <Button\n key={`button-${prop.label}`}\n title={prop.label}\n Icon={prop.icon}\n selected={index === selectedItemIndex}\n testID={`navigationButton_${index}`}\n styles={styleSheet}\n theme={theme}\n />\n ))}\n </View>\n </View>\n );\n};\n\nexport default NavigationBar;\n"],"file":"index.native.js"}
@@ -122,8 +122,12 @@ const QuestionContainer = props => {
122
122
  className: style.questionOrigin
123
123
  }, questionOrigin), /*#__PURE__*/React.createElement("div", {
124
124
  key: "title",
125
- className: style.question
126
- }, questionText), /*#__PURE__*/React.createElement("div", {
125
+ className: style.question // eslint-disable-next-line react/no-danger
126
+ ,
127
+ dangerouslySetInnerHTML: {
128
+ __html: questionText
129
+ }
130
+ }), /*#__PURE__*/React.createElement("div", {
127
131
  key: "help",
128
132
  className: style.help
129
133
  }, get('help', answerUI)), /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/organism/review-slide/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","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","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\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\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 slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\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} = props;\n if (!answerUI || !questionText) return null;\n\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div key=\"title\" className={style.question}>\n {questionText}\n </div>\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} 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};\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 answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} 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 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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/organism/review-slide/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","_correctionPopinProps","onClick","console","log","type","resultLabel","correctionPopinWrapper","popinAnimation","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","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\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\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 slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\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} = props;\n if (!answerUI || !questionText) return null;\n\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} 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};\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 answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} 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 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"],"file":"index.js"}
@@ -17,11 +17,13 @@
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  justify-content: flex-start;
20
+ height: 100%;
20
21
  }
21
22
 
22
23
  .slideContentContainer {
23
24
  margin-top: 15px;
24
- height: 563px;
25
+ min-height: calc(100% - 100px);
26
+ max-height: calc(100% - 100px);
25
27
  display: flex;
26
28
  justify-items: center;
27
29
  align-items: center;
@@ -32,19 +34,16 @@
32
34
  }
33
35
 
34
36
  .validateButtonWrapper {
35
- position: absolute;
36
- bottom: 64px;
37
- background-color: black;
38
37
  border-radius: 7px;
39
38
  min-width: 250px;
40
39
  width: min-content;
40
+ position: relative;
41
+ margin: 15px auto;
41
42
  }
42
43
 
43
44
  /* ie fallback */
44
45
  _:-ms-fullscreen, :root .validateButtonWrapper {
45
- width: 300px;
46
- left: 40%;
47
- right: 40%;
46
+ width: auto;
48
47
  }
49
48
 
50
49
  .answerContainer {
@@ -74,7 +73,7 @@ _:-ms-fullscreen, :root .validateButtonWrapper {
74
73
  composes: fontBase;
75
74
  font-size: 15px;
76
75
  color: cm_blue_900;
77
- margin-top: 49px;
76
+ margin-top: 34px;
78
77
  text-align: center;
79
78
  max-width: 95%;
80
79
  }
@@ -111,7 +110,7 @@ _:-ms-fullscreen, :root .validateButtonWrapper {
111
110
  position: absolute;
112
111
  bottom: 0px;
113
112
  border-radius: 7px;
114
- margin: 0 15px 40px;
113
+ margin: 0 15px 15px;
115
114
  width: 95%;
116
115
  }
117
116
 
@@ -126,6 +125,7 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
126
125
 
127
126
  .validateButton {
128
127
  color: white;
128
+ width: 300px;
129
129
  transition: opacity 0.25s ease-in;
130
130
  }
131
131
 
@@ -139,10 +139,6 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
139
139
  }
140
140
 
141
141
  @media tablet {
142
- .slideContentContainer {
143
- height: 473px;
144
- }
145
-
146
142
  @keyframes popInAnimation {
147
143
  from {
148
144
  transform: translate3d(0, 400px, 0);
@@ -154,10 +150,6 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
154
150
  }
155
151
 
156
152
  @media mobile {
157
- .slideContentContainer {
158
- height: 511px;
159
- }
160
-
161
153
  .questionOrigin, .question, .help, .answerContainer {
162
154
  max-width: 90%;
163
155
  }
@@ -4,9 +4,8 @@
4
4
 
5
5
  .stackedSlidesYAxisOverflowContainer {
6
6
  width: 100%;
7
- padding-top: 20px;
8
- height: 100%;
9
- min-height: 870px;
7
+ padding-top: 50px;
8
+ height: calc(100vh - 155px);
10
9
  /* --- ie11 fallback --- */
11
10
  overflow-y: hidden;
12
11
  /* --------------------- */
@@ -19,17 +18,14 @@
19
18
 
20
19
  .stackedSlidesContainer {
21
20
  position: relative;
22
- padding-top: 20px;
23
- height: 788px;
24
21
  max-width: 1240px;
25
22
  width: 85%;
26
- align-self: center;
27
23
  }
28
24
 
29
25
  .slideBase {
30
26
  box-shadow: 0px 4px 58px rgba(0, 0, 0, 0.05);
31
27
  background: white;
32
- height: 706px;
28
+ height: calc(100vh - 155px);
33
29
  border-radius: 24px;
34
30
  overflow: hidden;
35
31
  position: absolute;
@@ -47,6 +43,7 @@
47
43
  width: 100%;
48
44
  transform: translate(0, 0);
49
45
  transition: transform 0.5s ease-in;
46
+
50
47
  }
51
48
 
52
49
  .position1 {
@@ -153,22 +150,15 @@
153
150
 
154
151
  @media tablet {
155
152
  .stackedSlidesContainer {
156
- height: 638px;
157
153
  max-width: 960px;
158
154
  }
159
-
160
- .slideBase {
161
- height: 606px;
162
- }
163
155
  }
164
156
 
165
157
  @media mobile {
166
158
  .stackedSlidesContainer {
167
- height: 670px;
168
159
  max-width: 335px;
169
160
  }
170
-
171
161
  .slideBase {
172
- height: 654px;
162
+ height: calc(100vh - 185px);
173
163
  }
174
164
  }
@@ -74,6 +74,7 @@ const AssistanceLink = (props, context) => {
74
74
  title,
75
75
  onClick
76
76
  } = props;
77
+ if (_isEmpty(title)) return null;
77
78
  const {
78
79
  skin
79
80
  } = context;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/template/app-player/popin-correction/index.js"],"names":["React","Component","PropTypes","NovaCompositionCoorpacademyCheck","CheckIcon","NovaLineInterfaceFeedbackInterfaceAlertCircle","AlertIcon","classnames","Loader","Link","Provider","ResourceBrowser","Accordion","Header","style","extractTabs","items","map","type","item","iconType","title","isOpen","open","Resources","resources","overlay","browserWrapper","value","browser","propTypes","shape","SimpleText","text","simpleTextWrapper","simpleText","innerHTML","__html","string","AssistanceLink","props","context","onClick","skin","white","wrapperAssistance","alertIcon","titleLink","contextTypes","childContextTypes","func","Question","header","answer","answerPrefix","question","questionHeader","answerWrapper","checkIcon","PopinCorrection","constructor","state","initWrapper","bind","componentDidMount","deferOpen","clearTimeout","deferedOpen","onOpen","setState","wrapper","render","extraLifeGranted","gameOver","klf","tips","quit","assistanceLink","primary","tabs","isLoading","failed","className","finalBackground","initialBackground","cta","linkProps","quitCta","color","hideQuitCta","scrollWrapper","loadingWrapper","loadingContent","content","activeLoader"],"mappings":"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","sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {defer, isNil, isEmpty, get, getOr, keys, omit} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCheck as CheckIcon,\n NovaLineInterfaceFeedbackInterfaceAlertCircle as AlertIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport Loader from '../../../atom/loader';\nimport Link from '../../../atom/link';\nimport Provider from '../../../atom/provider';\nimport ResourceBrowser from '../../../organism/resource-browser';\nimport Accordion from '../../../organism/accordion/container';\nimport Header from '../popin-header';\nimport style from './style.css';\n\nconst extractTabs = items =>\n keys(items).map(type => {\n const item = items[type];\n return {iconType: type, title: item.title, isOpen: item.open};\n });\n\nconst Resources = ({resources, overlay}) => (\n <div className={style.browserWrapper}>\n <ResourceBrowser resources={resources.value} overlay={overlay} className={style.browser} />\n </div>\n);\n\nResources.propTypes = {\n resources: PropTypes.shape({\n value: ResourceBrowser.propTypes.resources\n }),\n overlay: ResourceBrowser.propTypes.overlay\n};\n\nconst SimpleText = ({text}) => (\n <div data-name=\"simpleText\" className={style.simpleTextWrapper}>\n <p\n className={classnames(style.simpleText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: text}}\n />\n </div>\n);\n\nSimpleText.propTypes = {\n text: PropTypes.string\n};\n\nconst AssistanceLink = (props, context) => {\n if (isEmpty(props)) return null;\n const {title, onClick} = props;\n const {skin} = context;\n const white = get('common.white', skin);\n\n return (\n <div className={style.wrapperAssistance} onClick={onClick}>\n <AlertIcon className={style.alertIcon} color={white} />\n <span className={style.titleLink}> {title} </span>\n </div>\n );\n};\n\nAssistanceLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nAssistanceLink.propTypes = {\n title: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst Question = ({header, answer, answerPrefix}) => (\n <div className={style.question}>\n <p\n className={classnames(style.questionHeader, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: header}}\n />\n <div className={style.answerWrapper}>\n <CheckIcon className={style.checkIcon} color=\"inherit\" />\n {answerPrefix ? <span className={style.answerPrefix}>{answerPrefix}</span> : null}\n <span\n className={classnames(style.answer, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: answer}}\n />\n </div>\n </div>\n);\n\nQuestion.propTypes = {\n header: PropTypes.string,\n answerPrefix: PropTypes.string,\n answer: PropTypes.string\n};\n\nclass PopinCorrection extends Component {\n static propTypes = {\n resources: Resources.propTypes.resources,\n overlay: ResourceBrowser.propTypes.overlay,\n assistanceLink: PropTypes.shape(AssistanceLink.propTypes),\n header: PropTypes.shape(omit(['animated'], Header.propTypes)),\n extraLifeGranted: Header.propTypes.extraLifeGranted,\n gameOver: Header.propTypes.gameOver,\n question: PropTypes.shape(Question.propTypes),\n klf: PropTypes.shape(SimpleText.propTypes),\n tips: PropTypes.shape(SimpleText.propTypes),\n onClick: Accordion.propTypes.onClick,\n quit: PropTypes.shape({\n cta: PropTypes.shape({\n ...Link.propTypes,\n title: PropTypes.string\n })\n }),\n onOpen: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {open: false};\n this.initWrapper = this.initWrapper.bind(this);\n }\n\n componentDidMount() {\n this.deferOpen();\n }\n\n deferOpen() {\n clearTimeout(this.deferedOpen);\n\n this.deferedOpen = defer(() => {\n const {onOpen} = this.props;\n this.setState({open: true});\n onOpen && onOpen();\n });\n }\n\n initWrapper(wrapper) {\n this.wrapper = wrapper;\n }\n\n render() {\n const {\n header = {},\n extraLifeGranted,\n gameOver,\n question,\n overlay,\n resources,\n klf,\n tips,\n onClick,\n quit = {},\n assistanceLink = {}\n } = this.props;\n\n const {open} = this.state;\n\n const {skin} = this.context;\n const primary = getOr('#f0f', 'common.primary', skin);\n\n const tabs = extractTabs({resources, klf, tips});\n const isLoading = isNil(header.failed);\n const className = open ? style.finalBackground : style.initialBackground;\n const {title, ...linkProps} = quit.cta || {};\n\n const quitCta =\n title || extraLifeGranted ? (\n <Link\n {...linkProps}\n style={{\n color: primary\n }}\n className={extraLifeGranted ? style.hideQuitCta : style.quitCta}\n data-name=\"nextLink\"\n data-popin=\"popinCorrection\"\n data-next=\"quit-with-extra-life\"\n >\n {title}\n </Link>\n ) : null;\n\n return (\n <div ref={this.initWrapper} className={className} data-name=\"popinCorrection\">\n <div className={style.scrollWrapper}>\n <div className={isLoading ? style.loadingWrapper : style.wrapper}>\n <div className={isLoading ? style.loadingContent : style.content}>\n <Header\n {...header}\n gameOver={gameOver}\n extraLifeGranted={extraLifeGranted}\n animated\n />\n <Question {...question} />\n <Accordion tabProps={tabs} onClick={onClick} oneTabOnly>\n {isEmpty(getOr([], 'value', resources)) ? null : (\n <Resources resources={resources} overlay={overlay} />\n )}\n {klf.value ? <SimpleText text={klf.value} /> : null}\n {tips.value ? <SimpleText text={tips.value} /> : null}\n </Accordion>\n </div>\n {quitCta}\n <AssistanceLink {...assistanceLink} />\n </div>\n {isLoading ? <Loader className={style.activeLoader} /> : null}\n </div>\n </div>\n );\n }\n}\n\nexport default PopinCorrection;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/template/app-player/popin-correction/index.js"],"names":["React","Component","PropTypes","NovaCompositionCoorpacademyCheck","CheckIcon","NovaLineInterfaceFeedbackInterfaceAlertCircle","AlertIcon","classnames","Loader","Link","Provider","ResourceBrowser","Accordion","Header","style","extractTabs","items","map","type","item","iconType","title","isOpen","open","Resources","resources","overlay","browserWrapper","value","browser","propTypes","shape","SimpleText","text","simpleTextWrapper","simpleText","innerHTML","__html","string","AssistanceLink","props","context","onClick","skin","white","wrapperAssistance","alertIcon","titleLink","contextTypes","childContextTypes","func","Question","header","answer","answerPrefix","question","questionHeader","answerWrapper","checkIcon","PopinCorrection","constructor","state","initWrapper","bind","componentDidMount","deferOpen","clearTimeout","deferedOpen","onOpen","setState","wrapper","render","extraLifeGranted","gameOver","klf","tips","quit","assistanceLink","primary","tabs","isLoading","failed","className","finalBackground","initialBackground","cta","linkProps","quitCta","color","hideQuitCta","scrollWrapper","loadingWrapper","loadingContent","content","activeLoader"],"mappings":"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","sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {defer, isNil, isEmpty, get, getOr, keys, omit} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCheck as CheckIcon,\n NovaLineInterfaceFeedbackInterfaceAlertCircle as AlertIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport Loader from '../../../atom/loader';\nimport Link from '../../../atom/link';\nimport Provider from '../../../atom/provider';\nimport ResourceBrowser from '../../../organism/resource-browser';\nimport Accordion from '../../../organism/accordion/container';\nimport Header from '../popin-header';\nimport style from './style.css';\n\nconst extractTabs = items =>\n keys(items).map(type => {\n const item = items[type];\n return {iconType: type, title: item.title, isOpen: item.open};\n });\n\nconst Resources = ({resources, overlay}) => (\n <div className={style.browserWrapper}>\n <ResourceBrowser resources={resources.value} overlay={overlay} className={style.browser} />\n </div>\n);\n\nResources.propTypes = {\n resources: PropTypes.shape({\n value: ResourceBrowser.propTypes.resources\n }),\n overlay: ResourceBrowser.propTypes.overlay\n};\n\nconst SimpleText = ({text}) => (\n <div data-name=\"simpleText\" className={style.simpleTextWrapper}>\n <p\n className={classnames(style.simpleText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: text}}\n />\n </div>\n);\n\nSimpleText.propTypes = {\n text: PropTypes.string\n};\n\nconst AssistanceLink = (props, context) => {\n if (isEmpty(props)) return null;\n const {title, onClick} = props;\n if (isEmpty(title)) return null;\n const {skin} = context;\n const white = get('common.white', skin);\n\n return (\n <div className={style.wrapperAssistance} onClick={onClick}>\n <AlertIcon className={style.alertIcon} color={white} />\n <span className={style.titleLink}> {title} </span>\n </div>\n );\n};\n\nAssistanceLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nAssistanceLink.propTypes = {\n title: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst Question = ({header, answer, answerPrefix}) => (\n <div className={style.question}>\n <p\n className={classnames(style.questionHeader, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: header}}\n />\n <div className={style.answerWrapper}>\n <CheckIcon className={style.checkIcon} color=\"inherit\" />\n {answerPrefix ? <span className={style.answerPrefix}>{answerPrefix}</span> : null}\n <span\n className={classnames(style.answer, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: answer}}\n />\n </div>\n </div>\n);\n\nQuestion.propTypes = {\n header: PropTypes.string,\n answerPrefix: PropTypes.string,\n answer: PropTypes.string\n};\n\nclass PopinCorrection extends Component {\n static propTypes = {\n resources: Resources.propTypes.resources,\n overlay: ResourceBrowser.propTypes.overlay,\n assistanceLink: PropTypes.shape(AssistanceLink.propTypes),\n header: PropTypes.shape(omit(['animated'], Header.propTypes)),\n extraLifeGranted: Header.propTypes.extraLifeGranted,\n gameOver: Header.propTypes.gameOver,\n question: PropTypes.shape(Question.propTypes),\n klf: PropTypes.shape(SimpleText.propTypes),\n tips: PropTypes.shape(SimpleText.propTypes),\n onClick: Accordion.propTypes.onClick,\n quit: PropTypes.shape({\n cta: PropTypes.shape({\n ...Link.propTypes,\n title: PropTypes.string\n })\n }),\n onOpen: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {open: false};\n this.initWrapper = this.initWrapper.bind(this);\n }\n\n componentDidMount() {\n this.deferOpen();\n }\n\n deferOpen() {\n clearTimeout(this.deferedOpen);\n\n this.deferedOpen = defer(() => {\n const {onOpen} = this.props;\n this.setState({open: true});\n onOpen && onOpen();\n });\n }\n\n initWrapper(wrapper) {\n this.wrapper = wrapper;\n }\n\n render() {\n const {\n header = {},\n extraLifeGranted,\n gameOver,\n question,\n overlay,\n resources,\n klf,\n tips,\n onClick,\n quit = {},\n assistanceLink = {}\n } = this.props;\n\n const {open} = this.state;\n\n const {skin} = this.context;\n const primary = getOr('#f0f', 'common.primary', skin);\n\n const tabs = extractTabs({resources, klf, tips});\n const isLoading = isNil(header.failed);\n const className = open ? style.finalBackground : style.initialBackground;\n const {title, ...linkProps} = quit.cta || {};\n\n const quitCta =\n title || extraLifeGranted ? (\n <Link\n {...linkProps}\n style={{\n color: primary\n }}\n className={extraLifeGranted ? style.hideQuitCta : style.quitCta}\n data-name=\"nextLink\"\n data-popin=\"popinCorrection\"\n data-next=\"quit-with-extra-life\"\n >\n {title}\n </Link>\n ) : null;\n\n return (\n <div ref={this.initWrapper} className={className} data-name=\"popinCorrection\">\n <div className={style.scrollWrapper}>\n <div className={isLoading ? style.loadingWrapper : style.wrapper}>\n <div className={isLoading ? style.loadingContent : style.content}>\n <Header\n {...header}\n gameOver={gameOver}\n extraLifeGranted={extraLifeGranted}\n animated\n />\n <Question {...question} />\n <Accordion tabProps={tabs} onClick={onClick} oneTabOnly>\n {isEmpty(getOr([], 'value', resources)) ? null : (\n <Resources resources={resources} overlay={overlay} />\n )}\n {klf.value ? <SimpleText text={klf.value} /> : null}\n {tips.value ? <SimpleText text={tips.value} /> : null}\n </Accordion>\n </div>\n {quitCta}\n <AssistanceLink {...assistanceLink} />\n </div>\n {isLoading ? <Loader className={style.activeLoader} /> : null}\n </div>\n </div>\n );\n }\n}\n\nexport default PopinCorrection;\n"],"file":"index.js"}
@@ -1,12 +1,13 @@
1
1
  .playerReviewContainer {
2
- position: relative;
3
2
  display: flex;
4
3
  flex-direction: column;
5
- /* --- ie11 fallback --- */
4
+ min-height: 700px;
5
+ position: fixed;
6
+ top: 0px;
7
+ left: 0px;
6
8
  height: 100%;
7
- /* --------------------- */
8
- height: min-content;
9
- min-height: 832px;
9
+ width: 100%;
10
+ z-index: 10;
10
11
  }
11
12
 
12
13
  /*
@@ -35,7 +36,6 @@
35
36
  position: absolute;
36
37
  display: block;
37
38
  height: 100%;
38
- min-height: 120vh;
39
39
  top: 0;
40
40
  left: 0;
41
41
  }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _reactNative = require("react-native");
9
+
10
+ var _blur = require("@react-native-community/blur");
11
+
12
+ var _novaIcons = require("@coorpacademy/nova-icons");
13
+
14
+ var _templateContext = require("../../template/app-review/template-context");
15
+
16
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
17
+
18
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
20
+ const createStyleSheet = theme => _reactNative.StyleSheet.create({
21
+ main: {
22
+ marginHorizontal: 20
23
+ },
24
+ container: {
25
+ position: 'absolute',
26
+ bottom: 34,
27
+ width: '100%',
28
+ flexDirection: 'row',
29
+ justifyContent: 'space-between',
30
+ alignSelf: 'center',
31
+ overflow: 'hidden',
32
+ height: 66,
33
+ borderRadius: 12,
34
+ backgroundColor: theme.colors.gray.light
35
+ },
36
+ button: {
37
+ alignItems: 'center',
38
+ flex: 1,
39
+ height: '100%',
40
+ marginTop: theme.spacing.small
41
+ },
42
+ buttonText: {
43
+ fontSize: theme.fontSize.small,
44
+ lineHeight: 26,
45
+ // height: 11,
46
+ color: theme.colors.text.primary
47
+ },
48
+ dot: {
49
+ width: 8,
50
+ height: 8,
51
+ borderRadius: 8,
52
+ backgroundColor: theme.colors.cta,
53
+ marginTop: 3,
54
+ position: 'absolute',
55
+ alignSelf: 'center'
56
+ },
57
+ blur: {
58
+ marginTop: -87,
59
+ width: 200,
60
+ height: 100,
61
+ position: 'absolute',
62
+ alignSelf: 'center',
63
+ transform: [{
64
+ rotateX: '180deg'
65
+ }, {
66
+ scaleX: 0.7
67
+ }]
68
+ }
69
+ });
70
+
71
+ const Button = ({
72
+ testID,
73
+ title,
74
+ selected,
75
+ Icon,
76
+ styles,
77
+ theme
78
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative.View, {
79
+ testID: testID,
80
+ style: styles.button
81
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
82
+ style: {
83
+ alignItems: 'center'
84
+ }
85
+ }, /*#__PURE__*/_react.default.createElement(Icon, {
86
+ height: 16,
87
+ width: 16,
88
+ color: selected ? theme.colors.cta : theme.colors.text.primary
89
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
90
+ style: styles.buttonText
91
+ }, title)), selected ? /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
92
+ style: styles.dot
93
+ }), /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationNavBar, {
94
+ color: theme.colors.cta,
95
+ style: styles.blur
96
+ })) : null);
97
+
98
+ const NavigationBar = ({
99
+ items,
100
+ selectedItemIndex
101
+ }) => {
102
+ const templateContext = (0, _templateContext.useTemplateContext)();
103
+ const [styleSheet, setStylesheet] = (0, _react.useState)(null);
104
+ const {
105
+ theme
106
+ } = templateContext;
107
+ (0, _react.useEffect)(() => {
108
+ const _stylesheet = createStyleSheet(theme);
109
+
110
+ setStylesheet(_stylesheet);
111
+ }, [theme]);
112
+
113
+ if (!styleSheet) {
114
+ return null;
115
+ }
116
+
117
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
118
+ style: styleSheet.main
119
+ }, /*#__PURE__*/_react.default.createElement(_blur.BlurView, {
120
+ style: styleSheet.container,
121
+ blurAmount: 32,
122
+ reducedTransparencyFallbackColor: "rgba(17, 17, 23, 0.5)"
123
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
124
+ style: styleSheet.container
125
+ }, items.map((prop, index) => /*#__PURE__*/_react.default.createElement(Button, {
126
+ key: `button-${prop.label}`,
127
+ title: prop.label,
128
+ Icon: prop.icon,
129
+ selected: index === selectedItemIndex,
130
+ testID: `navigationButton_${index}`,
131
+ styles: styleSheet,
132
+ theme: theme
133
+ }))));
134
+ };
135
+
136
+ var _default = NavigationBar;
137
+ exports.default = _default;
138
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/organism/mobile-navigation/index.native.tsx"],"names":["createStyleSheet","theme","StyleSheet","create","main","marginHorizontal","container","position","bottom","width","flexDirection","justifyContent","alignSelf","overflow","height","borderRadius","backgroundColor","colors","gray","light","button","alignItems","flex","marginTop","spacing","small","buttonText","fontSize","lineHeight","color","text","primary","dot","cta","blur","transform","rotateX","scaleX","Button","testID","title","selected","Icon","styles","NavigationBar","items","selectedItemIndex","templateContext","styleSheet","setStylesheet","_stylesheet","map","prop","index","label","icon"],"mappings":"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","sourcesContent":["import React, {useState, useEffect} from 'react';\nimport {View, StyleSheet, Text} from 'react-native';\nimport {BlurView} from '@react-native-community/blur';\n\nimport {NovaCompositionNavigationNavBar as BlurredShadow} from '@coorpacademy/nova-icons';\n\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {\n Position,\n FlexDirection,\n JustifyContent,\n AlignSelf,\n Overflow,\n FlexAlignType,\n FontSize\n} from '../../types/styles';\nimport {Theme} from '../../variables/theme.native';\n\nexport type NavItemType = {\n label: string;\n icon: any;\n onPress: () => void;\n};\n\nexport interface Props {\n testID?: string;\n items: Array<NavItemType>;\n selectedItemIndex: number;\n}\n\ntype StyleSheetType = {\n main: {\n marginHorizontal: number;\n };\n container: {\n position: Position;\n bottom: number;\n width: string;\n flexDirection: FlexDirection;\n justifyContent: JustifyContent;\n alignSelf: AlignSelf;\n overflow: Overflow;\n height: number;\n borderRadius: number;\n backgroundColor: string;\n };\n button: {\n alignItems: FlexAlignType;\n flex: number;\n height: string;\n marginTop: number;\n };\n buttonText: {\n fontSize: FontSize;\n lineHeight: number;\n color: string;\n };\n\n dot: {\n width: number;\n height: number;\n borderRadius: number;\n backgroundColor: string;\n marginTop: number;\n };\n blur: {\n marginTop: number;\n width: number;\n height: number;\n };\n};\n\nconst createStyleSheet = (theme: Theme) =>\n StyleSheet.create({\n main: {\n marginHorizontal: 20\n },\n container: {\n position: 'absolute',\n bottom: 34,\n width: '100%',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignSelf: 'center',\n overflow: 'hidden',\n height: 66,\n borderRadius: 12,\n backgroundColor: theme.colors.gray.light\n },\n button: {\n alignItems: 'center',\n flex: 1,\n height: '100%',\n marginTop: theme.spacing.small\n },\n buttonText: {\n fontSize: theme.fontSize.small,\n lineHeight: 26,\n // height: 11,\n color: theme.colors.text.primary\n },\n\n dot: {\n width: 8,\n height: 8,\n borderRadius: 8,\n backgroundColor: theme.colors.cta,\n marginTop: 3,\n position: 'absolute',\n alignSelf: 'center'\n },\n blur: {\n marginTop: -87,\n width: 200,\n height: 100,\n position: 'absolute',\n alignSelf: 'center',\n transform: [{rotateX: '180deg'}, {scaleX: 0.7}]\n }\n });\n\ninterface ButtonProps {\n title: string;\n testID: string;\n selected: boolean;\n Icon: any;\n styles: StyleSheetType;\n theme: Theme;\n}\n\nconst Button = ({testID, title, selected, Icon, styles, theme}: ButtonProps) => (\n <View testID={testID} style={styles.button}>\n <View style={{alignItems: 'center'}}>\n <Icon\n height={16}\n width={16}\n color={selected ? theme.colors.cta : theme.colors.text.primary}\n />\n <Text style={styles.buttonText}>{title}</Text>\n </View>\n {selected ? (\n <View>\n <View style={styles.dot} />\n <BlurredShadow color={theme.colors.cta} style={styles.blur} />\n </View>\n ) : null}\n </View>\n);\n\nconst NavigationBar = ({items, selectedItemIndex}: Props) => {\n const templateContext = useTemplateContext();\n const [styleSheet, setStylesheet] = useState<StyleSheetType | null>(null);\n const {theme} = templateContext;\n\n useEffect(() => {\n const _stylesheet = createStyleSheet(theme);\n setStylesheet(_stylesheet);\n }, [theme]);\n\n if (!styleSheet) {\n return null;\n }\n\n return (\n <View style={styleSheet.main}>\n <BlurView\n style={styleSheet.container}\n blurAmount={32}\n reducedTransparencyFallbackColor=\"rgba(17, 17, 23, 0.5)\"\n />\n <View style={styleSheet.container}>\n {items.map((prop, index) => (\n <Button\n key={`button-${prop.label}`}\n title={prop.label}\n Icon={prop.icon}\n selected={index === selectedItemIndex}\n testID={`navigationButton_${index}`}\n styles={styleSheet}\n theme={theme}\n />\n ))}\n </View>\n </View>\n );\n};\n\nexport default NavigationBar;\n"],"file":"index.native.js"}
@@ -144,8 +144,12 @@ const QuestionContainer = props => {
144
144
  className: _style.default.questionOrigin
145
145
  }, questionOrigin), /*#__PURE__*/_react.default.createElement("div", {
146
146
  key: "title",
147
- className: _style.default.question
148
- }, questionText), /*#__PURE__*/_react.default.createElement("div", {
147
+ className: _style.default.question // eslint-disable-next-line react/no-danger
148
+ ,
149
+ dangerouslySetInnerHTML: {
150
+ __html: questionText
151
+ }
152
+ }), /*#__PURE__*/_react.default.createElement("div", {
149
153
  key: "help",
150
154
  className: _style.default.help
151
155
  }, (0, _get.default)('help', answerUI)), /*#__PURE__*/_react.default.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","style","correctionPopinWrapper","popinAnimation","propTypes","PropTypes","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","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\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\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 slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\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} = props;\n if (!answerUI || !questionText) return null;\n\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div key=\"title\" className={style.question}>\n {questionText}\n </div>\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} 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};\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 answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} 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 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"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/organism/review-slide/index.js"],"names":["CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","klf","information","label","message","next","_correctionPopinProps","onClick","console","log","type","resultLabel","style","correctionPopinWrapper","popinAnimation","propTypes","PropTypes","string","bool","ValidateButton","validateButton","primarySkinColor","disabled","validateButtonProps","className","customStyle","backgroundColor","validateButtonWrapper","QuestionContainer","props","answerUI","questionText","questionOrigin","answerProps","model","answers","choices","slideContentContainer","question","__html","help","answerContainer","shape","slide","ReviewSlide","skin","loading","loadingAriaLabel","parentContentTitle","loader"],"mappings":"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","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\n const _correctionPopinProps = {\n next: {\n onClick: () => {\n // eslint-disable-next-line no-console\n console.log('Next Slide');\n },\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 slide validation action, this will trigger the correction popin\n (with the useEffect that fires the dispatchers, if there is a nextContent content,\n it will be loaded here) but will not trigger any animations unless the endReview\n signal is received (all slide will disappear, also fired in a useEffect),\n\n if it is the last slide and the content needs to be different, then that update will\n be handled on the next slide logic but the content will be carried from here.\n onClick: async () => {\n // endReview based on nextContent ref exit node values: 'successExitNode' : 'failExitNode'\n await validateSlide();\n },\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} = props;\n if (!answerUI || !questionText) return null;\n\n const answerProps = get(['model', 'choices'], answerUI)\n ? /* istanbul ignore next */ {\n ...answerUI,\n model: {\n ...answerUI.model,\n answers: answerUI.model.choices\n }\n }\n : answerUI;\n\n return (\n <div key=\"content-container\" className={style.slideContentContainer}>\n <div key=\"from-course\" className={style.questionOrigin}>\n {questionOrigin}\n </div>\n <div\n key=\"title\"\n className={style.question}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: questionText}}\n />\n <div key=\"help\" className={style.help}>\n {get('help', answerUI)}\n </div>\n <div key=\"answer-container\" className={style.answerContainer}>\n <Answer {...answerProps} 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};\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 answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n return (\n <div data-name={`slide-container`} 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 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"],"file":"index.js"}
@@ -17,11 +17,13 @@
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  justify-content: flex-start;
20
+ height: 100%;
20
21
  }
21
22
 
22
23
  .slideContentContainer {
23
24
  margin-top: 15px;
24
- height: 563px;
25
+ min-height: calc(100% - 100px);
26
+ max-height: calc(100% - 100px);
25
27
  display: flex;
26
28
  justify-items: center;
27
29
  align-items: center;
@@ -32,19 +34,16 @@
32
34
  }
33
35
 
34
36
  .validateButtonWrapper {
35
- position: absolute;
36
- bottom: 64px;
37
- background-color: black;
38
37
  border-radius: 7px;
39
38
  min-width: 250px;
40
39
  width: min-content;
40
+ position: relative;
41
+ margin: 15px auto;
41
42
  }
42
43
 
43
44
  /* ie fallback */
44
45
  _:-ms-fullscreen, :root .validateButtonWrapper {
45
- width: 300px;
46
- left: 40%;
47
- right: 40%;
46
+ width: auto;
48
47
  }
49
48
 
50
49
  .answerContainer {
@@ -74,7 +73,7 @@ _:-ms-fullscreen, :root .validateButtonWrapper {
74
73
  composes: fontBase;
75
74
  font-size: 15px;
76
75
  color: cm_blue_900;
77
- margin-top: 49px;
76
+ margin-top: 34px;
78
77
  text-align: center;
79
78
  max-width: 95%;
80
79
  }
@@ -111,7 +110,7 @@ _:-ms-fullscreen, :root .validateButtonWrapper {
111
110
  position: absolute;
112
111
  bottom: 0px;
113
112
  border-radius: 7px;
114
- margin: 0 15px 40px;
113
+ margin: 0 15px 15px;
115
114
  width: 95%;
116
115
  }
117
116
 
@@ -126,6 +125,7 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
126
125
 
127
126
  .validateButton {
128
127
  color: white;
128
+ width: 300px;
129
129
  transition: opacity 0.25s ease-in;
130
130
  }
131
131
 
@@ -139,10 +139,6 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
139
139
  }
140
140
 
141
141
  @media tablet {
142
- .slideContentContainer {
143
- height: 473px;
144
- }
145
-
146
142
  @keyframes popInAnimation {
147
143
  from {
148
144
  transform: translate3d(0, 400px, 0);
@@ -154,10 +150,6 @@ _:-ms-fullscreen, :root .correctionPopinWrapper {
154
150
  }
155
151
 
156
152
  @media mobile {
157
- .slideContentContainer {
158
- height: 511px;
159
- }
160
-
161
153
  .questionOrigin, .question, .help, .answerContainer {
162
154
  max-width: 90%;
163
155
  }
@@ -4,9 +4,8 @@
4
4
 
5
5
  .stackedSlidesYAxisOverflowContainer {
6
6
  width: 100%;
7
- padding-top: 20px;
8
- height: 100%;
9
- min-height: 870px;
7
+ padding-top: 50px;
8
+ height: calc(100vh - 155px);
10
9
  /* --- ie11 fallback --- */
11
10
  overflow-y: hidden;
12
11
  /* --------------------- */
@@ -19,17 +18,14 @@
19
18
 
20
19
  .stackedSlidesContainer {
21
20
  position: relative;
22
- padding-top: 20px;
23
- height: 788px;
24
21
  max-width: 1240px;
25
22
  width: 85%;
26
- align-self: center;
27
23
  }
28
24
 
29
25
  .slideBase {
30
26
  box-shadow: 0px 4px 58px rgba(0, 0, 0, 0.05);
31
27
  background: white;
32
- height: 706px;
28
+ height: calc(100vh - 155px);
33
29
  border-radius: 24px;
34
30
  overflow: hidden;
35
31
  position: absolute;
@@ -47,6 +43,7 @@
47
43
  width: 100%;
48
44
  transform: translate(0, 0);
49
45
  transition: transform 0.5s ease-in;
46
+
50
47
  }
51
48
 
52
49
  .position1 {
@@ -153,22 +150,15 @@
153
150
 
154
151
  @media tablet {
155
152
  .stackedSlidesContainer {
156
- height: 638px;
157
153
  max-width: 960px;
158
154
  }
159
-
160
- .slideBase {
161
- height: 606px;
162
- }
163
155
  }
164
156
 
165
157
  @media mobile {
166
158
  .stackedSlidesContainer {
167
- height: 670px;
168
159
  max-width: 335px;
169
160
  }
170
-
171
161
  .slideBase {
172
- height: 654px;
162
+ height: calc(100vh - 185px);
173
163
  }
174
164
  }
@@ -101,6 +101,7 @@ const AssistanceLink = (props, context) => {
101
101
  title,
102
102
  onClick
103
103
  } = props;
104
+ if ((0, _isEmpty2.default)(title)) return null;
104
105
  const {
105
106
  skin
106
107
  } = context;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/template/app-player/popin-correction/index.js"],"names":["extractTabs","items","map","type","item","iconType","title","isOpen","open","Resources","resources","overlay","style","browserWrapper","value","browser","propTypes","PropTypes","shape","ResourceBrowser","SimpleText","text","simpleTextWrapper","simpleText","innerHTML","__html","string","AssistanceLink","props","context","onClick","skin","white","wrapperAssistance","alertIcon","titleLink","contextTypes","Provider","childContextTypes","func","Question","header","answer","answerPrefix","question","questionHeader","answerWrapper","checkIcon","PopinCorrection","Component","constructor","state","initWrapper","bind","componentDidMount","deferOpen","clearTimeout","deferedOpen","onOpen","setState","wrapper","render","extraLifeGranted","gameOver","klf","tips","quit","assistanceLink","primary","tabs","isLoading","failed","className","finalBackground","initialBackground","cta","linkProps","quitCta","color","hideQuitCta","scrollWrapper","loadingWrapper","loadingContent","content","activeLoader","Header","Accordion","Link"],"mappings":"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","sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {defer, isNil, isEmpty, get, getOr, keys, omit} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCheck as CheckIcon,\n NovaLineInterfaceFeedbackInterfaceAlertCircle as AlertIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport Loader from '../../../atom/loader';\nimport Link from '../../../atom/link';\nimport Provider from '../../../atom/provider';\nimport ResourceBrowser from '../../../organism/resource-browser';\nimport Accordion from '../../../organism/accordion/container';\nimport Header from '../popin-header';\nimport style from './style.css';\n\nconst extractTabs = items =>\n keys(items).map(type => {\n const item = items[type];\n return {iconType: type, title: item.title, isOpen: item.open};\n });\n\nconst Resources = ({resources, overlay}) => (\n <div className={style.browserWrapper}>\n <ResourceBrowser resources={resources.value} overlay={overlay} className={style.browser} />\n </div>\n);\n\nResources.propTypes = {\n resources: PropTypes.shape({\n value: ResourceBrowser.propTypes.resources\n }),\n overlay: ResourceBrowser.propTypes.overlay\n};\n\nconst SimpleText = ({text}) => (\n <div data-name=\"simpleText\" className={style.simpleTextWrapper}>\n <p\n className={classnames(style.simpleText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: text}}\n />\n </div>\n);\n\nSimpleText.propTypes = {\n text: PropTypes.string\n};\n\nconst AssistanceLink = (props, context) => {\n if (isEmpty(props)) return null;\n const {title, onClick} = props;\n const {skin} = context;\n const white = get('common.white', skin);\n\n return (\n <div className={style.wrapperAssistance} onClick={onClick}>\n <AlertIcon className={style.alertIcon} color={white} />\n <span className={style.titleLink}> {title} </span>\n </div>\n );\n};\n\nAssistanceLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nAssistanceLink.propTypes = {\n title: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst Question = ({header, answer, answerPrefix}) => (\n <div className={style.question}>\n <p\n className={classnames(style.questionHeader, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: header}}\n />\n <div className={style.answerWrapper}>\n <CheckIcon className={style.checkIcon} color=\"inherit\" />\n {answerPrefix ? <span className={style.answerPrefix}>{answerPrefix}</span> : null}\n <span\n className={classnames(style.answer, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: answer}}\n />\n </div>\n </div>\n);\n\nQuestion.propTypes = {\n header: PropTypes.string,\n answerPrefix: PropTypes.string,\n answer: PropTypes.string\n};\n\nclass PopinCorrection extends Component {\n static propTypes = {\n resources: Resources.propTypes.resources,\n overlay: ResourceBrowser.propTypes.overlay,\n assistanceLink: PropTypes.shape(AssistanceLink.propTypes),\n header: PropTypes.shape(omit(['animated'], Header.propTypes)),\n extraLifeGranted: Header.propTypes.extraLifeGranted,\n gameOver: Header.propTypes.gameOver,\n question: PropTypes.shape(Question.propTypes),\n klf: PropTypes.shape(SimpleText.propTypes),\n tips: PropTypes.shape(SimpleText.propTypes),\n onClick: Accordion.propTypes.onClick,\n quit: PropTypes.shape({\n cta: PropTypes.shape({\n ...Link.propTypes,\n title: PropTypes.string\n })\n }),\n onOpen: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {open: false};\n this.initWrapper = this.initWrapper.bind(this);\n }\n\n componentDidMount() {\n this.deferOpen();\n }\n\n deferOpen() {\n clearTimeout(this.deferedOpen);\n\n this.deferedOpen = defer(() => {\n const {onOpen} = this.props;\n this.setState({open: true});\n onOpen && onOpen();\n });\n }\n\n initWrapper(wrapper) {\n this.wrapper = wrapper;\n }\n\n render() {\n const {\n header = {},\n extraLifeGranted,\n gameOver,\n question,\n overlay,\n resources,\n klf,\n tips,\n onClick,\n quit = {},\n assistanceLink = {}\n } = this.props;\n\n const {open} = this.state;\n\n const {skin} = this.context;\n const primary = getOr('#f0f', 'common.primary', skin);\n\n const tabs = extractTabs({resources, klf, tips});\n const isLoading = isNil(header.failed);\n const className = open ? style.finalBackground : style.initialBackground;\n const {title, ...linkProps} = quit.cta || {};\n\n const quitCta =\n title || extraLifeGranted ? (\n <Link\n {...linkProps}\n style={{\n color: primary\n }}\n className={extraLifeGranted ? style.hideQuitCta : style.quitCta}\n data-name=\"nextLink\"\n data-popin=\"popinCorrection\"\n data-next=\"quit-with-extra-life\"\n >\n {title}\n </Link>\n ) : null;\n\n return (\n <div ref={this.initWrapper} className={className} data-name=\"popinCorrection\">\n <div className={style.scrollWrapper}>\n <div className={isLoading ? style.loadingWrapper : style.wrapper}>\n <div className={isLoading ? style.loadingContent : style.content}>\n <Header\n {...header}\n gameOver={gameOver}\n extraLifeGranted={extraLifeGranted}\n animated\n />\n <Question {...question} />\n <Accordion tabProps={tabs} onClick={onClick} oneTabOnly>\n {isEmpty(getOr([], 'value', resources)) ? null : (\n <Resources resources={resources} overlay={overlay} />\n )}\n {klf.value ? <SimpleText text={klf.value} /> : null}\n {tips.value ? <SimpleText text={tips.value} /> : null}\n </Accordion>\n </div>\n {quitCta}\n <AssistanceLink {...assistanceLink} />\n </div>\n {isLoading ? <Loader className={style.activeLoader} /> : null}\n </div>\n </div>\n );\n }\n}\n\nexport default PopinCorrection;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/template/app-player/popin-correction/index.js"],"names":["extractTabs","items","map","type","item","iconType","title","isOpen","open","Resources","resources","overlay","style","browserWrapper","value","browser","propTypes","PropTypes","shape","ResourceBrowser","SimpleText","text","simpleTextWrapper","simpleText","innerHTML","__html","string","AssistanceLink","props","context","onClick","skin","white","wrapperAssistance","alertIcon","titleLink","contextTypes","Provider","childContextTypes","func","Question","header","answer","answerPrefix","question","questionHeader","answerWrapper","checkIcon","PopinCorrection","Component","constructor","state","initWrapper","bind","componentDidMount","deferOpen","clearTimeout","deferedOpen","onOpen","setState","wrapper","render","extraLifeGranted","gameOver","klf","tips","quit","assistanceLink","primary","tabs","isLoading","failed","className","finalBackground","initialBackground","cta","linkProps","quitCta","color","hideQuitCta","scrollWrapper","loadingWrapper","loadingContent","content","activeLoader","Header","Accordion","Link"],"mappings":"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","sourcesContent":["import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {defer, isNil, isEmpty, get, getOr, keys, omit} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyCheck as CheckIcon,\n NovaLineInterfaceFeedbackInterfaceAlertCircle as AlertIcon\n} from '@coorpacademy/nova-icons';\nimport classnames from 'classnames';\nimport Loader from '../../../atom/loader';\nimport Link from '../../../atom/link';\nimport Provider from '../../../atom/provider';\nimport ResourceBrowser from '../../../organism/resource-browser';\nimport Accordion from '../../../organism/accordion/container';\nimport Header from '../popin-header';\nimport style from './style.css';\n\nconst extractTabs = items =>\n keys(items).map(type => {\n const item = items[type];\n return {iconType: type, title: item.title, isOpen: item.open};\n });\n\nconst Resources = ({resources, overlay}) => (\n <div className={style.browserWrapper}>\n <ResourceBrowser resources={resources.value} overlay={overlay} className={style.browser} />\n </div>\n);\n\nResources.propTypes = {\n resources: PropTypes.shape({\n value: ResourceBrowser.propTypes.resources\n }),\n overlay: ResourceBrowser.propTypes.overlay\n};\n\nconst SimpleText = ({text}) => (\n <div data-name=\"simpleText\" className={style.simpleTextWrapper}>\n <p\n className={classnames(style.simpleText, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: text}}\n />\n </div>\n);\n\nSimpleText.propTypes = {\n text: PropTypes.string\n};\n\nconst AssistanceLink = (props, context) => {\n if (isEmpty(props)) return null;\n const {title, onClick} = props;\n if (isEmpty(title)) return null;\n const {skin} = context;\n const white = get('common.white', skin);\n\n return (\n <div className={style.wrapperAssistance} onClick={onClick}>\n <AlertIcon className={style.alertIcon} color={white} />\n <span className={style.titleLink}> {title} </span>\n </div>\n );\n};\n\nAssistanceLink.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nAssistanceLink.propTypes = {\n title: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst Question = ({header, answer, answerPrefix}) => (\n <div className={style.question}>\n <p\n className={classnames(style.questionHeader, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: header}}\n />\n <div className={style.answerWrapper}>\n <CheckIcon className={style.checkIcon} color=\"inherit\" />\n {answerPrefix ? <span className={style.answerPrefix}>{answerPrefix}</span> : null}\n <span\n className={classnames(style.answer, style.innerHTML)}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: answer}}\n />\n </div>\n </div>\n);\n\nQuestion.propTypes = {\n header: PropTypes.string,\n answerPrefix: PropTypes.string,\n answer: PropTypes.string\n};\n\nclass PopinCorrection extends Component {\n static propTypes = {\n resources: Resources.propTypes.resources,\n overlay: ResourceBrowser.propTypes.overlay,\n assistanceLink: PropTypes.shape(AssistanceLink.propTypes),\n header: PropTypes.shape(omit(['animated'], Header.propTypes)),\n extraLifeGranted: Header.propTypes.extraLifeGranted,\n gameOver: Header.propTypes.gameOver,\n question: PropTypes.shape(Question.propTypes),\n klf: PropTypes.shape(SimpleText.propTypes),\n tips: PropTypes.shape(SimpleText.propTypes),\n onClick: Accordion.propTypes.onClick,\n quit: PropTypes.shape({\n cta: PropTypes.shape({\n ...Link.propTypes,\n title: PropTypes.string\n })\n }),\n onOpen: PropTypes.func\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n constructor(props) {\n super(props);\n this.state = {open: false};\n this.initWrapper = this.initWrapper.bind(this);\n }\n\n componentDidMount() {\n this.deferOpen();\n }\n\n deferOpen() {\n clearTimeout(this.deferedOpen);\n\n this.deferedOpen = defer(() => {\n const {onOpen} = this.props;\n this.setState({open: true});\n onOpen && onOpen();\n });\n }\n\n initWrapper(wrapper) {\n this.wrapper = wrapper;\n }\n\n render() {\n const {\n header = {},\n extraLifeGranted,\n gameOver,\n question,\n overlay,\n resources,\n klf,\n tips,\n onClick,\n quit = {},\n assistanceLink = {}\n } = this.props;\n\n const {open} = this.state;\n\n const {skin} = this.context;\n const primary = getOr('#f0f', 'common.primary', skin);\n\n const tabs = extractTabs({resources, klf, tips});\n const isLoading = isNil(header.failed);\n const className = open ? style.finalBackground : style.initialBackground;\n const {title, ...linkProps} = quit.cta || {};\n\n const quitCta =\n title || extraLifeGranted ? (\n <Link\n {...linkProps}\n style={{\n color: primary\n }}\n className={extraLifeGranted ? style.hideQuitCta : style.quitCta}\n data-name=\"nextLink\"\n data-popin=\"popinCorrection\"\n data-next=\"quit-with-extra-life\"\n >\n {title}\n </Link>\n ) : null;\n\n return (\n <div ref={this.initWrapper} className={className} data-name=\"popinCorrection\">\n <div className={style.scrollWrapper}>\n <div className={isLoading ? style.loadingWrapper : style.wrapper}>\n <div className={isLoading ? style.loadingContent : style.content}>\n <Header\n {...header}\n gameOver={gameOver}\n extraLifeGranted={extraLifeGranted}\n animated\n />\n <Question {...question} />\n <Accordion tabProps={tabs} onClick={onClick} oneTabOnly>\n {isEmpty(getOr([], 'value', resources)) ? null : (\n <Resources resources={resources} overlay={overlay} />\n )}\n {klf.value ? <SimpleText text={klf.value} /> : null}\n {tips.value ? <SimpleText text={tips.value} /> : null}\n </Accordion>\n </div>\n {quitCta}\n <AssistanceLink {...assistanceLink} />\n </div>\n {isLoading ? <Loader className={style.activeLoader} /> : null}\n </div>\n </div>\n );\n }\n}\n\nexport default PopinCorrection;\n"],"file":"index.js"}
@@ -1,12 +1,13 @@
1
1
  .playerReviewContainer {
2
- position: relative;
3
2
  display: flex;
4
3
  flex-direction: column;
5
- /* --- ie11 fallback --- */
4
+ min-height: 700px;
5
+ position: fixed;
6
+ top: 0px;
7
+ left: 0px;
6
8
  height: 100%;
7
- /* --------------------- */
8
- height: min-content;
9
- min-height: 832px;
9
+ width: 100%;
10
+ z-index: 10;
10
11
  }
11
12
 
12
13
  /*
@@ -35,7 +36,6 @@
35
36
  position: absolute;
36
37
  display: block;
37
38
  height: 100%;
38
- min-height: 120vh;
39
39
  top: 0;
40
40
  left: 0;
41
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "10.22.22",
3
+ "version": "10.22.24-alpha.5+31142bfd9",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -100,6 +100,7 @@
100
100
  "@coorpacademy/react-native-slider": "^0.11.1",
101
101
  "@coorpacademy/translate": "6.1.5",
102
102
  "@coorpacademy/webpack-config": "10.0.4",
103
+ "@react-native-community/blur": "^4.2.0",
103
104
  "@storybook/addon-knobs": "^5.3.18",
104
105
  "@storybook/addons": "^5.3.18",
105
106
  "@storybook/react": "^5.3.18",
@@ -139,5 +140,5 @@
139
140
  "webpack": "^4.43.0"
140
141
  },
141
142
  "author": "CoorpAcademy",
142
- "gitHead": "6eca157ba8c342a0d345a7d303166b43e4a9792a"
143
+ "gitHead": "31142bfd914b3f169048c3e0bc261835ab74c030"
143
144
  }