@coorpacademy/components 11.12.3-alpha.11 → 11.12.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/molecule/hero/index.d.ts +0 -2
- package/es/molecule/hero/index.d.ts.map +1 -1
- package/es/molecule/hero/index.js +4 -14
- package/es/molecule/hero/index.js.map +1 -1
- package/es/molecule/hero/style.css +0 -42
- package/es/organism/review-slide/index.native.d.ts.map +1 -1
- package/es/organism/review-slide/index.native.js +2 -5
- package/es/organism/review-slide/index.native.js.map +1 -1
- package/lib/molecule/hero/index.d.ts +0 -2
- package/lib/molecule/hero/index.d.ts.map +1 -1
- package/lib/molecule/hero/index.js +4 -14
- package/lib/molecule/hero/index.js.map +1 -1
- package/lib/molecule/hero/style.css +0 -42
- package/lib/organism/review-slide/index.native.d.ts.map +1 -1
- package/lib/organism/review-slide/index.native.js +2 -5
- package/lib/organism/review-slide/index.native.js.map +1 -1
- package/package.json +2 -2
- package/es/molecule/expandable-item/index.d.ts +0 -26
- package/es/molecule/expandable-item/index.d.ts.map +0 -1
- package/es/molecule/expandable-item/index.js +0 -51
- package/es/molecule/expandable-item/index.js.map +0 -1
- package/es/molecule/expandable-item/style.css +0 -129
- package/es/molecule/expandable-list/index.d.ts +0 -16
- package/es/molecule/expandable-list/index.d.ts.map +0 -1
- package/es/molecule/expandable-list/index.js +0 -32
- package/es/molecule/expandable-list/index.js.map +0 -1
- package/es/molecule/expandable-list/style.css +0 -21
- package/es/molecule/menu-links/index.d.ts +0 -18
- package/es/molecule/menu-links/index.d.ts.map +0 -1
- package/es/molecule/menu-links/index.js +0 -43
- package/es/molecule/menu-links/index.js.map +0 -1
- package/es/molecule/menu-links/style.css +0 -87
- package/es/molecule/privacy-policy-contact/index.d.ts +0 -18
- package/es/molecule/privacy-policy-contact/index.d.ts.map +0 -1
- package/es/molecule/privacy-policy-contact/index.js +0 -31
- package/es/molecule/privacy-policy-contact/index.js.map +0 -1
- package/es/molecule/privacy-policy-contact/style.css +0 -37
- package/es/molecule/privacy-policy-download/index.d.ts +0 -30
- package/es/molecule/privacy-policy-download/index.d.ts.map +0 -1
- package/es/molecule/privacy-policy-download/index.js +0 -31
- package/es/molecule/privacy-policy-download/index.js.map +0 -1
- package/es/molecule/privacy-policy-download/style.css +0 -65
- package/es/template/common/privacy-policy-page/index.d.ts +0 -59
- package/es/template/common/privacy-policy-page/index.d.ts.map +0 -1
- package/es/template/common/privacy-policy-page/index.js +0 -47
- package/es/template/common/privacy-policy-page/index.js.map +0 -1
- package/es/template/common/privacy-policy-page/style.css +0 -78
- package/lib/molecule/expandable-item/index.d.ts +0 -26
- package/lib/molecule/expandable-item/index.d.ts.map +0 -1
- package/lib/molecule/expandable-item/index.js +0 -66
- package/lib/molecule/expandable-item/index.js.map +0 -1
- package/lib/molecule/expandable-item/style.css +0 -129
- package/lib/molecule/expandable-list/index.d.ts +0 -16
- package/lib/molecule/expandable-list/index.d.ts.map +0 -1
- package/lib/molecule/expandable-list/index.js +0 -46
- package/lib/molecule/expandable-list/index.js.map +0 -1
- package/lib/molecule/expandable-list/style.css +0 -21
- package/lib/molecule/menu-links/index.d.ts +0 -18
- package/lib/molecule/menu-links/index.d.ts.map +0 -1
- package/lib/molecule/menu-links/index.js +0 -54
- package/lib/molecule/menu-links/index.js.map +0 -1
- package/lib/molecule/menu-links/style.css +0 -87
- package/lib/molecule/privacy-policy-contact/index.d.ts +0 -18
- package/lib/molecule/privacy-policy-contact/index.d.ts.map +0 -1
- package/lib/molecule/privacy-policy-contact/index.js +0 -44
- package/lib/molecule/privacy-policy-contact/index.js.map +0 -1
- package/lib/molecule/privacy-policy-contact/style.css +0 -37
- package/lib/molecule/privacy-policy-download/index.d.ts +0 -30
- package/lib/molecule/privacy-policy-download/index.d.ts.map +0 -1
- package/lib/molecule/privacy-policy-download/index.js +0 -42
- package/lib/molecule/privacy-policy-download/index.js.map +0 -1
- package/lib/molecule/privacy-policy-download/style.css +0 -65
- package/lib/template/common/privacy-policy-page/index.d.ts +0 -59
- package/lib/template/common/privacy-policy-page/index.d.ts.map +0 -1
- package/lib/template/common/privacy-policy-page/index.js +0 -61
- package/lib/template/common/privacy-policy-page/index.js.map +0 -1
- package/lib/template/common/privacy-policy-page/style.css +0 -78
|
@@ -26,8 +26,6 @@ declare namespace Hero {
|
|
|
26
26
|
}
|
|
27
27
|
namespace propTypes {
|
|
28
28
|
const image: PropTypes.Requireable<string>;
|
|
29
|
-
const mode: PropTypes.Requireable<string>;
|
|
30
|
-
const description: PropTypes.Requireable<string>;
|
|
31
29
|
const title: PropTypes.Requireable<string>;
|
|
32
30
|
const author: PropTypes.Requireable<string>;
|
|
33
31
|
const progress: PropTypes.Requireable<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/hero/index.js"],"names":[],"mappings":";AASA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/hero/index.js"],"names":[],"mappings":";AASA,6DAgCC"}
|
|
@@ -17,9 +17,7 @@ const Hero = (props, context) => {
|
|
|
17
17
|
author,
|
|
18
18
|
progress,
|
|
19
19
|
onClick,
|
|
20
|
-
submitValue
|
|
21
|
-
description,
|
|
22
|
-
mode = MODES.HERO
|
|
20
|
+
submitValue
|
|
23
21
|
} = props;
|
|
24
22
|
|
|
25
23
|
const primaryColor = _get('common.primary', skin);
|
|
@@ -37,18 +35,12 @@ const Hero = (props, context) => {
|
|
|
37
35
|
backgroundColor: primaryColor,
|
|
38
36
|
backgroundImage: image ? `url('${image}')` : 'none'
|
|
39
37
|
}
|
|
40
|
-
})),
|
|
38
|
+
})), /*#__PURE__*/React.createElement(CardContentInfo, {
|
|
41
39
|
mode: MODES.HERO,
|
|
42
40
|
author: author,
|
|
43
41
|
progress: progress,
|
|
44
42
|
title: title
|
|
45
|
-
})
|
|
46
|
-
className: style.infoWrapper
|
|
47
|
-
}, /*#__PURE__*/React.createElement("h1", {
|
|
48
|
-
className: style.title
|
|
49
|
-
}, title), /*#__PURE__*/React.createElement("p", {
|
|
50
|
-
className: style.description
|
|
51
|
-
}, description)), mode === MODES.HERO ? /*#__PURE__*/React.createElement("div", {
|
|
43
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
52
44
|
className: style.heroButtonWrapper
|
|
53
45
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
54
46
|
type: "link",
|
|
@@ -59,7 +51,7 @@ const Hero = (props, context) => {
|
|
|
59
51
|
style: {
|
|
60
52
|
backgroundColor: primaryColor
|
|
61
53
|
}
|
|
62
|
-
}))
|
|
54
|
+
})));
|
|
63
55
|
};
|
|
64
56
|
|
|
65
57
|
Hero.contextTypes = {
|
|
@@ -67,8 +59,6 @@ Hero.contextTypes = {
|
|
|
67
59
|
};
|
|
68
60
|
Hero.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
69
61
|
image: PropTypes.string,
|
|
70
|
-
mode: PropTypes.string,
|
|
71
|
-
description: PropTypes.string,
|
|
72
62
|
title: CardContentInfo.propTypes.title,
|
|
73
63
|
author: CardContentInfo.propTypes.author,
|
|
74
64
|
progress: CardContentInfo.propTypes.progress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PropTypes","classnames","Provider","Button","CardContentInfo","MODES","style","Hero","props","context","skin","image","title","author","progress","onClick","submitValue","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PropTypes","classnames","Provider","Button","CardContentInfo","MODES","style","Hero","props","context","skin","image","title","author","progress","onClick","submitValue","primaryColor","cardStyle","hero","lazy","imageWrapper","backgroundColor","backgroundImage","HERO","heroButtonWrapper","heroButton","contextTypes","childContextTypes","propTypes","string"],"sources":["../../../src/molecule/hero/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Button from '../../atom/button';\nimport CardContentInfo, {MODES} from '../card-content';\nimport style from './style.css';\n\nconst Hero = (props, context) => {\n const {skin} = context;\n const {image, title, author, progress, onClick, submitValue} = props;\n\n const primaryColor = get('common.primary', skin);\n const cardStyle = classnames(style.hero, title ? null : style.lazy);\n\n return (\n <div className={cardStyle} data-name=\"hero\">\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n />\n </div>\n <CardContentInfo mode={MODES.HERO} author={author} progress={progress} title={title} />\n <div className={style.heroButtonWrapper}>\n <Button\n type=\"link\"\n data-name=\"hero-button\"\n onClick={onClick}\n submitValue={submitValue}\n className={style.heroButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n </div>\n );\n};\n\nHero.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nHero.propTypes = {\n image: PropTypes.string,\n title: CardContentInfo.propTypes.title,\n author: CardContentInfo.propTypes.author,\n progress: CardContentInfo.propTypes.progress,\n onClick: Button.propTypes.onClick,\n submitValue: Button.propTypes.submitValue\n};\n\nexport default Hero;\n"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,OAAOC,QAAP,MAAqB,qBAArB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,eAAP,IAAyBC,KAAzB,QAAqC,iBAArC;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,IAAI,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EAC/B,MAAM;IAACC;EAAD,IAASD,OAAf;EACA,MAAM;IAACE,KAAD;IAAQC,KAAR;IAAeC,MAAf;IAAuBC,QAAvB;IAAiCC,OAAjC;IAA0CC;EAA1C,IAAyDR,KAA/D;;EAEA,MAAMS,YAAY,GAAG,KAAI,gBAAJ,EAAsBP,IAAtB,CAArB;;EACA,MAAMQ,SAAS,GAAGjB,UAAU,CAACK,KAAK,CAACa,IAAP,EAAaP,KAAK,GAAG,IAAH,GAAUN,KAAK,CAACc,IAAlC,CAA5B;EAEA,oBACE;IAAK,SAAS,EAAEF,SAAhB;IAA2B,aAAU;EAArC,gBACE;IAAK,SAAS,EAAEZ,KAAK,CAACe;EAAtB,gBACE;IACE,aAAU,OADZ;IAEE,SAAS,EAAEf,KAAK,CAACK,KAFnB;IAGE,KAAK,EAAE;MACLW,eAAe,EAAEL,YADZ;MAELM,eAAe,EAAEZ,KAAK,GAAI,QAAOA,KAAM,IAAjB,GAAuB;IAFxC;EAHT,EADF,CADF,eAWE,oBAAC,eAAD;IAAiB,IAAI,EAAEN,KAAK,CAACmB,IAA7B;IAAmC,MAAM,EAAEX,MAA3C;IAAmD,QAAQ,EAAEC,QAA7D;IAAuE,KAAK,EAAEF;EAA9E,EAXF,eAYE;IAAK,SAAS,EAAEN,KAAK,CAACmB;EAAtB,gBACE,oBAAC,MAAD;IACE,IAAI,EAAC,MADP;IAEE,aAAU,aAFZ;IAGE,OAAO,EAAEV,OAHX;IAIE,WAAW,EAAEC,WAJf;IAKE,SAAS,EAAEV,KAAK,CAACoB,UALnB;IAME,KAAK,EAAE;MAACJ,eAAe,EAAEL;IAAlB;EANT,EADF,CAZF,CADF;AAyBD,CAhCD;;AAkCAV,IAAI,CAACoB,YAAL,GAAoB;EAClBjB,IAAI,EAAER,QAAQ,CAAC0B,iBAAT,CAA2BlB;AADf,CAApB;AAIAH,IAAI,CAACsB,SAAL,2CAAiB;EACflB,KAAK,EAAEX,SAAS,CAAC8B,MADF;EAEflB,KAAK,EAAER,eAAe,CAACyB,SAAhB,CAA0BjB,KAFlB;EAGfC,MAAM,EAAET,eAAe,CAACyB,SAAhB,CAA0BhB,MAHnB;EAIfC,QAAQ,EAAEV,eAAe,CAACyB,SAAhB,CAA0Bf,QAJrB;EAKfC,OAAO,EAAEZ,MAAM,CAAC0B,SAAP,CAAiBd,OALX;EAMfC,WAAW,EAAEb,MAAM,CAAC0B,SAAP,CAAiBb;AANf,CAAjB;AASA,eAAeT,IAAf"}
|
|
@@ -156,45 +156,3 @@
|
|
|
156
156
|
opacity: 0;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
.infoWrapper {
|
|
161
|
-
display: flex;
|
|
162
|
-
flex-direction: column;
|
|
163
|
-
position: relative;
|
|
164
|
-
justify-content: center;
|
|
165
|
-
padding: 0 40px;
|
|
166
|
-
width: 100%;
|
|
167
|
-
box-sizing: border-box;
|
|
168
|
-
color: white;
|
|
169
|
-
align-self: center;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.title {
|
|
173
|
-
font-family: Gilroy;
|
|
174
|
-
font-size: 40px;
|
|
175
|
-
font-weight: 600;
|
|
176
|
-
line-height: 48px;
|
|
177
|
-
letter-spacing: 0px;
|
|
178
|
-
text-align: center;
|
|
179
|
-
overflow: hidden;
|
|
180
|
-
user-select: none;
|
|
181
|
-
margin: 0;
|
|
182
|
-
align-self: center;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.description {
|
|
186
|
-
text-align: center;
|
|
187
|
-
margin-top: 12px;
|
|
188
|
-
font-size: 17px;
|
|
189
|
-
font-family: Gilroy;
|
|
190
|
-
font-size: 16px;
|
|
191
|
-
font-weight: 400;
|
|
192
|
-
line-height: 24px;
|
|
193
|
-
letter-spacing: 0px;
|
|
194
|
-
overflow: hidden;
|
|
195
|
-
user-select: none;
|
|
196
|
-
max-width: 650px;
|
|
197
|
-
padding: 0;
|
|
198
|
-
margin: 0;
|
|
199
|
-
align-self: center;
|
|
200
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAa,gBAAgB,EAAa,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAa,gBAAgB,EAAa,MAAM,cAAc,CAAC;AA+OtE,QAAA,MAAM,KAAK,UAAW,gBAAgB,gBAmFrC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -138,6 +138,7 @@ const createQuestionStyle = theme => StyleSheet.create({
|
|
|
138
138
|
width: '100%'
|
|
139
139
|
},
|
|
140
140
|
choicesScrollContent: {
|
|
141
|
+
flexGrow: 1,
|
|
141
142
|
justifyContent: 'space-around',
|
|
142
143
|
padding: 10
|
|
143
144
|
}
|
|
@@ -171,10 +172,7 @@ const Question = props => {
|
|
|
171
172
|
style: style.questionHelp
|
|
172
173
|
}, get('help', answerUI))), /*#__PURE__*/React.createElement(ScrollView, {
|
|
173
174
|
style: style.choicesScrollView,
|
|
174
|
-
contentContainerStyle:
|
|
175
|
-
flex: 1
|
|
176
|
-
} : null],
|
|
177
|
-
centerContent: true,
|
|
175
|
+
contentContainerStyle: style.choicesScrollContent,
|
|
178
176
|
showsHorizontalScrollIndicator: false,
|
|
179
177
|
showsVerticalScrollIndicator: false
|
|
180
178
|
}, !isKeyboardVisible && hasVideoOrImage ? /*#__PURE__*/React.createElement(MediaView, {
|
|
@@ -182,7 +180,6 @@ const Question = props => {
|
|
|
182
180
|
autoplay: autoplayMedia
|
|
183
181
|
}) : null, /*#__PURE__*/React.createElement(View, {
|
|
184
182
|
style: {
|
|
185
|
-
flex: isKeyboardVisible ? 1 : 0,
|
|
186
183
|
marginTop: hasVideoOrImage ? 30 : 0
|
|
187
184
|
}
|
|
188
185
|
}, /*#__PURE__*/React.createElement(Answer, answerUI))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":["React","useCallback","useEffect","useMemo","useState","Animated","Easing","Image","Keyboard","ScrollView","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Answer","ReviewCorrectionPopin","useTemplateContext","Button","TYPE_AUDIO","TYPE_IMAGE","TYPE_VIDEO","Video","Html","styles","create","mediaContainer","alignItems","justifyContent","width","height","borderRadius","overflow","image","flex","correctionPopinWrapper","position","bottom","MediaView","media","autoplay","type","uri","url","split","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","choicesScrollContent","padding","Question","props","answerUI","isKeyboardVisible","autoplayMedia","setStyle","questionStyle","hasVideoOrImage","includes","createSlideStyle","num","screenWidth","slideWidth","hiddenBackgroundToLockActions","left","right","top","backgroundColor","slide","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","isValidated","setValidated","setKeyboardVisible","showListener","addListener","hideListener","remove","handleValidatePress","dismiss","setTimeout","slideStyle","isFirstSlide","loading","parentContentTitle","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n Keyboard,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport Html from '../../atom/html/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: 200,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media, autoplay}: {media?: Media; autoplay: boolean}) => {\n if (!media) {\n return null;\n }\n\n switch (media.type) {\n case TYPE_VIDEO:\n return (\n <View style={styles.mediaContainer}>\n <Video media={media} autoplay={autoplay} />\n </View>\n );\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={[styles.mediaContainer, styles.image]} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return null;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, '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 const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginTop: 20,\n width: '100%'\n },\n choicesScrollContent: {\n justifyContent: 'space-around',\n padding: 10\n }\n });\n\ntype QuestionProps = {\n autoplayMedia: boolean;\n answerUI: SlideProps['answerUI'];\n isKeyboardVisible: boolean;\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {\n answerUI,\n questionText,\n questionOrigin = '',\n isKeyboardVisible,\n autoplayMedia = false\n } = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n const hasVideoOrImage =\n answerUI.media?.type && [TYPE_VIDEO, TYPE_IMAGE].includes(answerUI.media.type);\n\n return (\n <>\n <View style={style.questionHeading}>\n <Html style={style.questionOrigin}>{questionOrigin}</Html>\n <Html style={style.questionText}>{questionText}</Html>\n <Html style={style.questionHelp}>{get('help', answerUI)}</Html>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={[\n style.choicesScrollContent,\n isKeyboardVisible\n ? {\n flex: 1\n }\n : null\n ]}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n {!isKeyboardVisible && hasVideoOrImage ? (\n <MediaView media={answerUI.media} autoplay={autoplayMedia} />\n ) : null}\n <View\n style={{\n flex: isKeyboardVisible ? 1 : 0,\n marginTop: hasVideoOrImage ? 30 : 0\n }}\n >\n <Answer {...answerUI} />\n </View>\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n hiddenBackgroundToLockActions: ViewStyle;\n};\n\nconst createSlideStyle = (\n num: number,\n screenWidth: number,\n isKeyboardVisible: boolean\n): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n hiddenBackgroundToLockActions: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: '#00000000'\n },\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: (isKeyboardVisible ? 5 : 34) + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n const [isValidated, setValidated] = useState<boolean>(false);\n const [isKeyboardVisible, setKeyboardVisible] = useState<boolean>(false);\n\n useEffect(() => {\n const showListener = Keyboard.addListener('keyboardDidShow', () => {\n setKeyboardVisible(true);\n });\n\n const hideListener = Keyboard.addListener('keyboardDidHide', () => {\n setKeyboardVisible(false);\n });\n\n return () => {\n showListener.remove();\n hideListener.remove();\n };\n }, []);\n\n const handleValidatePress = useCallback(() => {\n Keyboard.dismiss();\n setValidated(true);\n\n // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible\n setTimeout(() => {\n validateButton.onClick();\n }, 20);\n\n // only to create on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {width} = useWindowDimensions();\n const slideStyle = useMemo(\n () => createSlideStyle(num, width, isKeyboardVisible),\n [num, width, isKeyboardVisible]\n );\n const isFirstSlide = num === 1;\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n autoplayMedia={isFirstSlide}\n isKeyboardVisible={isKeyboardVisible}\n key=\"question-container\"\n />\n {isKeyboardVisible ? null : (\n <Button\n disabled={isValidated || validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n )}\n {isValidated ? <View style={slideStyle.hiddenBackgroundToLockActions} /> : null}\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","names":["React","useCallback","useEffect","useMemo","useState","Animated","Easing","Image","Keyboard","ScrollView","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Answer","ReviewCorrectionPopin","useTemplateContext","Button","TYPE_AUDIO","TYPE_IMAGE","TYPE_VIDEO","Video","Html","styles","create","mediaContainer","alignItems","justifyContent","width","height","borderRadius","overflow","image","flex","correctionPopinWrapper","position","bottom","MediaView","media","autoplay","type","uri","url","split","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","choicesScrollContent","flexGrow","padding","Question","props","answerUI","isKeyboardVisible","autoplayMedia","setStyle","questionStyle","hasVideoOrImage","includes","createSlideStyle","num","screenWidth","slideWidth","hiddenBackgroundToLockActions","left","right","top","backgroundColor","slide","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","isValidated","setValidated","setKeyboardVisible","showListener","addListener","hideListener","remove","handleValidatePress","dismiss","setTimeout","slideStyle","isFirstSlide","loading","parentContentTitle","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n Keyboard,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport Html from '../../atom/html/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: 200,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media, autoplay}: {media?: Media; autoplay: boolean}) => {\n if (!media) {\n return null;\n }\n\n switch (media.type) {\n case TYPE_VIDEO:\n return (\n <View style={styles.mediaContainer}>\n <Video media={media} autoplay={autoplay} />\n </View>\n );\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={[styles.mediaContainer, styles.image]} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return null;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, '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 const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginTop: 20,\n width: '100%'\n },\n choicesScrollContent: {\n flexGrow: 1,\n justifyContent: 'space-around',\n padding: 10\n }\n });\n\ntype QuestionProps = {\n autoplayMedia: boolean;\n answerUI: SlideProps['answerUI'];\n isKeyboardVisible: boolean;\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {\n answerUI,\n questionText,\n questionOrigin = '',\n isKeyboardVisible,\n autoplayMedia = false\n } = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n const hasVideoOrImage =\n answerUI.media?.type && [TYPE_VIDEO, TYPE_IMAGE].includes(answerUI.media.type);\n\n return (\n <>\n <View style={style.questionHeading}>\n <Html style={style.questionOrigin}>{questionOrigin}</Html>\n <Html style={style.questionText}>{questionText}</Html>\n <Html style={style.questionHelp}>{get('help', answerUI)}</Html>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n {!isKeyboardVisible && hasVideoOrImage ? (\n <MediaView media={answerUI.media} autoplay={autoplayMedia} />\n ) : null}\n <View\n style={{\n marginTop: hasVideoOrImage ? 30 : 0\n }}\n >\n <Answer {...answerUI} />\n </View>\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n hiddenBackgroundToLockActions: ViewStyle;\n};\n\nconst createSlideStyle = (\n num: number,\n screenWidth: number,\n isKeyboardVisible: boolean\n): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n hiddenBackgroundToLockActions: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: '#00000000'\n },\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: (isKeyboardVisible ? 5 : 34) + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n const [isValidated, setValidated] = useState<boolean>(false);\n const [isKeyboardVisible, setKeyboardVisible] = useState<boolean>(false);\n\n useEffect(() => {\n const showListener = Keyboard.addListener('keyboardDidShow', () => {\n setKeyboardVisible(true);\n });\n\n const hideListener = Keyboard.addListener('keyboardDidHide', () => {\n setKeyboardVisible(false);\n });\n\n return () => {\n showListener.remove();\n hideListener.remove();\n };\n }, []);\n\n const handleValidatePress = useCallback(() => {\n Keyboard.dismiss();\n setValidated(true);\n\n // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible\n setTimeout(() => {\n validateButton.onClick();\n }, 20);\n\n // only to create on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {width} = useWindowDimensions();\n const slideStyle = useMemo(\n () => createSlideStyle(num, width, isKeyboardVisible),\n [num, width, isKeyboardVisible]\n );\n const isFirstSlide = num === 1;\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n autoplayMedia={isFirstSlide}\n isKeyboardVisible={isKeyboardVisible}\n key=\"question-container\"\n />\n {isKeyboardVisible ? null : (\n <Button\n disabled={isValidated || validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n )}\n {isValidated ? <View style={slideStyle.hiddenBackgroundToLockActions} /> : null}\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|
|
@@ -26,8 +26,6 @@ declare namespace Hero {
|
|
|
26
26
|
}
|
|
27
27
|
namespace propTypes {
|
|
28
28
|
const image: PropTypes.Requireable<string>;
|
|
29
|
-
const mode: PropTypes.Requireable<string>;
|
|
30
|
-
const description: PropTypes.Requireable<string>;
|
|
31
29
|
const title: PropTypes.Requireable<string>;
|
|
32
30
|
const author: PropTypes.Requireable<string>;
|
|
33
31
|
const progress: PropTypes.Requireable<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/hero/index.js"],"names":[],"mappings":";AASA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/hero/index.js"],"names":[],"mappings":";AASA,6DAgCC"}
|
|
@@ -35,9 +35,7 @@ const Hero = (props, context) => {
|
|
|
35
35
|
author,
|
|
36
36
|
progress,
|
|
37
37
|
onClick,
|
|
38
|
-
submitValue
|
|
39
|
-
description,
|
|
40
|
-
mode = _cardContent.MODES.HERO
|
|
38
|
+
submitValue
|
|
41
39
|
} = props;
|
|
42
40
|
const primaryColor = (0, _get2.default)('common.primary', skin);
|
|
43
41
|
const cardStyle = (0, _classnames.default)(_style.default.hero, title ? null : _style.default.lazy);
|
|
@@ -53,18 +51,12 @@ const Hero = (props, context) => {
|
|
|
53
51
|
backgroundColor: primaryColor,
|
|
54
52
|
backgroundImage: image ? `url('${image}')` : 'none'
|
|
55
53
|
}
|
|
56
|
-
})),
|
|
54
|
+
})), /*#__PURE__*/_react.default.createElement(_cardContent.default, {
|
|
57
55
|
mode: _cardContent.MODES.HERO,
|
|
58
56
|
author: author,
|
|
59
57
|
progress: progress,
|
|
60
58
|
title: title
|
|
61
|
-
})
|
|
62
|
-
className: _style.default.infoWrapper
|
|
63
|
-
}, /*#__PURE__*/_react.default.createElement("h1", {
|
|
64
|
-
className: _style.default.title
|
|
65
|
-
}, title), /*#__PURE__*/_react.default.createElement("p", {
|
|
66
|
-
className: _style.default.description
|
|
67
|
-
}, description)), mode === _cardContent.MODES.HERO ? /*#__PURE__*/_react.default.createElement("div", {
|
|
59
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
68
60
|
className: _style.default.heroButtonWrapper
|
|
69
61
|
}, /*#__PURE__*/_react.default.createElement(_button.default, {
|
|
70
62
|
type: "link",
|
|
@@ -75,7 +67,7 @@ const Hero = (props, context) => {
|
|
|
75
67
|
style: {
|
|
76
68
|
backgroundColor: primaryColor
|
|
77
69
|
}
|
|
78
|
-
}))
|
|
70
|
+
})));
|
|
79
71
|
};
|
|
80
72
|
|
|
81
73
|
Hero.contextTypes = {
|
|
@@ -83,8 +75,6 @@ Hero.contextTypes = {
|
|
|
83
75
|
};
|
|
84
76
|
Hero.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
85
77
|
image: _propTypes.default.string,
|
|
86
|
-
mode: _propTypes.default.string,
|
|
87
|
-
description: _propTypes.default.string,
|
|
88
78
|
title: _cardContent.default.propTypes.title,
|
|
89
79
|
author: _cardContent.default.propTypes.author,
|
|
90
80
|
progress: _cardContent.default.propTypes.progress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Hero","props","context","skin","image","title","author","progress","onClick","submitValue","
|
|
1
|
+
{"version":3,"file":"index.js","names":["Hero","props","context","skin","image","title","author","progress","onClick","submitValue","primaryColor","cardStyle","classnames","style","hero","lazy","imageWrapper","backgroundColor","backgroundImage","MODES","HERO","heroButtonWrapper","heroButton","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","CardContentInfo","Button"],"sources":["../../../src/molecule/hero/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {get} from 'lodash/fp';\nimport Provider from '../../atom/provider';\nimport Button from '../../atom/button';\nimport CardContentInfo, {MODES} from '../card-content';\nimport style from './style.css';\n\nconst Hero = (props, context) => {\n const {skin} = context;\n const {image, title, author, progress, onClick, submitValue} = props;\n\n const primaryColor = get('common.primary', skin);\n const cardStyle = classnames(style.hero, title ? null : style.lazy);\n\n return (\n <div className={cardStyle} data-name=\"hero\">\n <div className={style.imageWrapper}>\n <div\n data-name=\"cover\"\n className={style.image}\n style={{\n backgroundColor: primaryColor,\n backgroundImage: image ? `url('${image}')` : 'none'\n }}\n />\n </div>\n <CardContentInfo mode={MODES.HERO} author={author} progress={progress} title={title} />\n <div className={style.heroButtonWrapper}>\n <Button\n type=\"link\"\n data-name=\"hero-button\"\n onClick={onClick}\n submitValue={submitValue}\n className={style.heroButton}\n style={{backgroundColor: primaryColor}}\n />\n </div>\n </div>\n );\n};\n\nHero.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nHero.propTypes = {\n image: PropTypes.string,\n title: CardContentInfo.propTypes.title,\n author: CardContentInfo.propTypes.author,\n progress: CardContentInfo.propTypes.progress,\n onClick: Button.propTypes.onClick,\n submitValue: Button.propTypes.submitValue\n};\n\nexport default Hero;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,IAAI,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EAC/B,MAAM;IAACC;EAAD,IAASD,OAAf;EACA,MAAM;IAACE,KAAD;IAAQC,KAAR;IAAeC,MAAf;IAAuBC,QAAvB;IAAiCC,OAAjC;IAA0CC;EAA1C,IAAyDR,KAA/D;EAEA,MAAMS,YAAY,GAAG,mBAAI,gBAAJ,EAAsBP,IAAtB,CAArB;EACA,MAAMQ,SAAS,GAAG,IAAAC,mBAAA,EAAWC,cAAA,CAAMC,IAAjB,EAAuBT,KAAK,GAAG,IAAH,GAAUQ,cAAA,CAAME,IAA5C,CAAlB;EAEA,oBACE;IAAK,SAAS,EAAEJ,SAAhB;IAA2B,aAAU;EAArC,gBACE;IAAK,SAAS,EAAEE,cAAA,CAAMG;EAAtB,gBACE;IACE,aAAU,OADZ;IAEE,SAAS,EAAEH,cAAA,CAAMT,KAFnB;IAGE,KAAK,EAAE;MACLa,eAAe,EAAEP,YADZ;MAELQ,eAAe,EAAEd,KAAK,GAAI,QAAOA,KAAM,IAAjB,GAAuB;IAFxC;EAHT,EADF,CADF,eAWE,6BAAC,oBAAD;IAAiB,IAAI,EAAEe,kBAAA,CAAMC,IAA7B;IAAmC,MAAM,EAAEd,MAA3C;IAAmD,QAAQ,EAAEC,QAA7D;IAAuE,KAAK,EAAEF;EAA9E,EAXF,eAYE;IAAK,SAAS,EAAEQ,cAAA,CAAMQ;EAAtB,gBACE,6BAAC,eAAD;IACE,IAAI,EAAC,MADP;IAEE,aAAU,aAFZ;IAGE,OAAO,EAAEb,OAHX;IAIE,WAAW,EAAEC,WAJf;IAKE,SAAS,EAAEI,cAAA,CAAMS,UALnB;IAME,KAAK,EAAE;MAACL,eAAe,EAAEP;IAAlB;EANT,EADF,CAZF,CADF;AAyBD,CAhCD;;AAkCAV,IAAI,CAACuB,YAAL,GAAoB;EAClBpB,IAAI,EAAEqB,iBAAA,CAASC,iBAAT,CAA2BtB;AADf,CAApB;AAIAH,IAAI,CAAC0B,SAAL,2CAAiB;EACftB,KAAK,EAAEuB,kBAAA,CAAUC,MADF;EAEfvB,KAAK,EAAEwB,oBAAA,CAAgBH,SAAhB,CAA0BrB,KAFlB;EAGfC,MAAM,EAAEuB,oBAAA,CAAgBH,SAAhB,CAA0BpB,MAHnB;EAIfC,QAAQ,EAAEsB,oBAAA,CAAgBH,SAAhB,CAA0BnB,QAJrB;EAKfC,OAAO,EAAEsB,eAAA,CAAOJ,SAAP,CAAiBlB,OALX;EAMfC,WAAW,EAAEqB,eAAA,CAAOJ,SAAP,CAAiBjB;AANf,CAAjB;eASeT,I"}
|
|
@@ -156,45 +156,3 @@
|
|
|
156
156
|
opacity: 0;
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
|
-
|
|
160
|
-
.infoWrapper {
|
|
161
|
-
display: flex;
|
|
162
|
-
flex-direction: column;
|
|
163
|
-
position: relative;
|
|
164
|
-
justify-content: center;
|
|
165
|
-
padding: 0 40px;
|
|
166
|
-
width: 100%;
|
|
167
|
-
box-sizing: border-box;
|
|
168
|
-
color: white;
|
|
169
|
-
align-self: center;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.title {
|
|
173
|
-
font-family: Gilroy;
|
|
174
|
-
font-size: 40px;
|
|
175
|
-
font-weight: 600;
|
|
176
|
-
line-height: 48px;
|
|
177
|
-
letter-spacing: 0px;
|
|
178
|
-
text-align: center;
|
|
179
|
-
overflow: hidden;
|
|
180
|
-
user-select: none;
|
|
181
|
-
margin: 0;
|
|
182
|
-
align-self: center;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.description {
|
|
186
|
-
text-align: center;
|
|
187
|
-
margin-top: 12px;
|
|
188
|
-
font-size: 17px;
|
|
189
|
-
font-family: Gilroy;
|
|
190
|
-
font-size: 16px;
|
|
191
|
-
font-weight: 400;
|
|
192
|
-
line-height: 24px;
|
|
193
|
-
letter-spacing: 0px;
|
|
194
|
-
overflow: hidden;
|
|
195
|
-
user-select: none;
|
|
196
|
-
max-width: 650px;
|
|
197
|
-
padding: 0;
|
|
198
|
-
margin: 0;
|
|
199
|
-
align-self: center;
|
|
200
|
-
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAa,gBAAgB,EAAa,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/index.native.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAa,gBAAgB,EAAa,MAAM,cAAc,CAAC;AA+OtE,QAAA,MAAM,KAAK,UAAW,gBAAgB,gBAmFrC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -161,6 +161,7 @@ const createQuestionStyle = theme => _reactNative.StyleSheet.create({
|
|
|
161
161
|
width: '100%'
|
|
162
162
|
},
|
|
163
163
|
choicesScrollContent: {
|
|
164
|
+
flexGrow: 1,
|
|
164
165
|
justifyContent: 'space-around',
|
|
165
166
|
padding: 10
|
|
166
167
|
}
|
|
@@ -194,10 +195,7 @@ const Question = props => {
|
|
|
194
195
|
style: style.questionHelp
|
|
195
196
|
}, (0, _get.default)('help', answerUI))), /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
196
197
|
style: style.choicesScrollView,
|
|
197
|
-
contentContainerStyle:
|
|
198
|
-
flex: 1
|
|
199
|
-
} : null],
|
|
200
|
-
centerContent: true,
|
|
198
|
+
contentContainerStyle: style.choicesScrollContent,
|
|
201
199
|
showsHorizontalScrollIndicator: false,
|
|
202
200
|
showsVerticalScrollIndicator: false
|
|
203
201
|
}, !isKeyboardVisible && hasVideoOrImage ? /*#__PURE__*/_react.default.createElement(MediaView, {
|
|
@@ -205,7 +203,6 @@ const Question = props => {
|
|
|
205
203
|
autoplay: autoplayMedia
|
|
206
204
|
}) : null, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
207
205
|
style: {
|
|
208
|
-
flex: isKeyboardVisible ? 1 : 0,
|
|
209
206
|
marginTop: hasVideoOrImage ? 30 : 0
|
|
210
207
|
}
|
|
211
208
|
}, /*#__PURE__*/_react.default.createElement(_index.default, answerUI))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.native.js","names":["styles","StyleSheet","create","mediaContainer","alignItems","justifyContent","width","height","borderRadius","overflow","image","flex","correctionPopinWrapper","position","bottom","MediaView","media","autoplay","type","TYPE_VIDEO","TYPE_IMAGE","uri","url","split","TYPE_AUDIO","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","useTranslateY","fromValue","toValue","duration","easing","Easing","bezier","useEffect","start","klf","getOr","undefined","information","label","message","next","get","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","choicesScrollContent","padding","Question","props","answerUI","isKeyboardVisible","autoplayMedia","useTemplateContext","setStyle","useState","questionStyle","hasVideoOrImage","includes","createSlideStyle","num","screenWidth","slideWidth","hiddenBackgroundToLockActions","left","right","top","backgroundColor","slide","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","isValidated","setValidated","setKeyboardVisible","showListener","Keyboard","addListener","hideListener","remove","handleValidatePress","useCallback","dismiss","setTimeout","useWindowDimensions","slideStyle","useMemo","isFirstSlide","loading","parentContentTitle","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n Keyboard,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport Html from '../../atom/html/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: 200,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media, autoplay}: {media?: Media; autoplay: boolean}) => {\n if (!media) {\n return null;\n }\n\n switch (media.type) {\n case TYPE_VIDEO:\n return (\n <View style={styles.mediaContainer}>\n <Video media={media} autoplay={autoplay} />\n </View>\n );\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={[styles.mediaContainer, styles.image]} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return null;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, '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 const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginTop: 20,\n width: '100%'\n },\n choicesScrollContent: {\n justifyContent: 'space-around',\n padding: 10\n }\n });\n\ntype QuestionProps = {\n autoplayMedia: boolean;\n answerUI: SlideProps['answerUI'];\n isKeyboardVisible: boolean;\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {\n answerUI,\n questionText,\n questionOrigin = '',\n isKeyboardVisible,\n autoplayMedia = false\n } = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n const hasVideoOrImage =\n answerUI.media?.type && [TYPE_VIDEO, TYPE_IMAGE].includes(answerUI.media.type);\n\n return (\n <>\n <View style={style.questionHeading}>\n <Html style={style.questionOrigin}>{questionOrigin}</Html>\n <Html style={style.questionText}>{questionText}</Html>\n <Html style={style.questionHelp}>{get('help', answerUI)}</Html>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={[\n style.choicesScrollContent,\n isKeyboardVisible\n ? {\n flex: 1\n }\n : null\n ]}\n centerContent\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n {!isKeyboardVisible && hasVideoOrImage ? (\n <MediaView media={answerUI.media} autoplay={autoplayMedia} />\n ) : null}\n <View\n style={{\n flex: isKeyboardVisible ? 1 : 0,\n marginTop: hasVideoOrImage ? 30 : 0\n }}\n >\n <Answer {...answerUI} />\n </View>\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n hiddenBackgroundToLockActions: ViewStyle;\n};\n\nconst createSlideStyle = (\n num: number,\n screenWidth: number,\n isKeyboardVisible: boolean\n): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n hiddenBackgroundToLockActions: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: '#00000000'\n },\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: (isKeyboardVisible ? 5 : 34) + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n const [isValidated, setValidated] = useState<boolean>(false);\n const [isKeyboardVisible, setKeyboardVisible] = useState<boolean>(false);\n\n useEffect(() => {\n const showListener = Keyboard.addListener('keyboardDidShow', () => {\n setKeyboardVisible(true);\n });\n\n const hideListener = Keyboard.addListener('keyboardDidHide', () => {\n setKeyboardVisible(false);\n });\n\n return () => {\n showListener.remove();\n hideListener.remove();\n };\n }, []);\n\n const handleValidatePress = useCallback(() => {\n Keyboard.dismiss();\n setValidated(true);\n\n // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible\n setTimeout(() => {\n validateButton.onClick();\n }, 20);\n\n // only to create on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {width} = useWindowDimensions();\n const slideStyle = useMemo(\n () => createSlideStyle(num, width, isKeyboardVisible),\n [num, width, isKeyboardVisible]\n );\n const isFirstSlide = num === 1;\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n autoplayMedia={isFirstSlide}\n isKeyboardVisible={isKeyboardVisible}\n key=\"question-container\"\n />\n {isKeyboardVisible ? null : (\n <Button\n disabled={isValidated || validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n )}\n {isValidated ? <View style={slideStyle.hiddenBackgroundToLockActions} /> : null}\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.native.js","names":["styles","StyleSheet","create","mediaContainer","alignItems","justifyContent","width","height","borderRadius","overflow","image","flex","correctionPopinWrapper","position","bottom","MediaView","media","autoplay","type","TYPE_VIDEO","TYPE_IMAGE","uri","url","split","TYPE_AUDIO","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","useTranslateY","fromValue","toValue","duration","easing","Easing","bezier","useEffect","start","klf","getOr","undefined","information","label","message","next","get","onClick","_correctionPopinProps","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesScrollView","choicesScrollContent","flexGrow","padding","Question","props","answerUI","isKeyboardVisible","autoplayMedia","useTemplateContext","setStyle","useState","questionStyle","hasVideoOrImage","includes","createSlideStyle","num","screenWidth","slideWidth","hiddenBackgroundToLockActions","left","right","top","backgroundColor","slide","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","Slide","validateButton","isValidated","setValidated","setKeyboardVisible","showListener","Keyboard","addListener","hideListener","remove","handleValidatePress","useCallback","dismiss","setTimeout","useWindowDimensions","slideStyle","useMemo","isFirstSlide","loading","parentContentTitle","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {\n Animated,\n Easing,\n Image,\n Keyboard,\n ScrollView,\n StyleSheet,\n TextStyle,\n useWindowDimensions,\n View,\n ViewStyle\n} from 'react-native';\nimport get from 'lodash/fp/get';\nimport getOr from 'lodash/fp/getOr';\nimport {useTranslateY} from '@coorpacademy/react-native-animation';\nimport Answer from '../../molecule/answer/index.native';\nimport ReviewCorrectionPopin from '../../molecule/review-correction-popin/index.native';\nimport {useTemplateContext} from '../../template/app-review/template-context';\nimport {Theme} from '../../variables/theme.native';\nimport Button from '../../atom/button/index.native';\nimport {TYPE_AUDIO, TYPE_IMAGE, TYPE_VIDEO} from '../../molecule/answer/prop-types';\nimport Video from '../../molecule/video-player-mobile/index.native';\nimport {Media} from '../../molecule/questions/types';\nimport Html from '../../atom/html/index.native';\nimport {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n mediaContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: 200,\n borderRadius: 10,\n overflow: 'hidden'\n },\n image: {\n flex: 1,\n width: '100%'\n },\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst MediaView = ({media, autoplay}: {media?: Media; autoplay: boolean}) => {\n if (!media) {\n return null;\n }\n\n switch (media.type) {\n case TYPE_VIDEO:\n return (\n <View style={styles.mediaContainer}>\n <Video media={media} autoplay={autoplay} />\n </View>\n );\n case TYPE_IMAGE: {\n const uri = `https://${media.url?.split('//')[1]}`;\n return <Image style={[styles.mediaContainer, styles.image]} source={{uri}} />;\n }\n case TYPE_AUDIO:\n default:\n return null;\n }\n};\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 500,\n toValue: 0,\n duration: 500,\n easing: Easing.bezier(0.34, 1.36, 0.64, 1)\n });\n\n // the translation is required only once on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => translateUp.start(), []);\n\n if (!showCorrectionPopin) return null;\n\n const klf = getOr(undefined, '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 const style = animateCorrectionPopin\n ? [styles.correctionPopinWrapper, translateUp.animatedStyle]\n : styles.correctionPopinWrapper;\n\n return (\n <Animated.View style={style}>\n <ReviewCorrectionPopin {..._correctionPopinProps} />\n </Animated.View>\n );\n};\n\ntype StyleSheetType = {\n questionHeading: ViewStyle;\n questionOrigin: ViewStyle;\n questionText: TextStyle;\n questionHelp: ViewStyle;\n choicesScrollView: ViewStyle;\n choicesScrollContent: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n questionOrigin: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.text.primary,\n marginBottom: theme.spacing.tiny,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n questionText: {\n fontSize: 16,\n lineHeight: 22,\n fontWeight: '700',\n color: theme.colors.text.primary,\n textAlign: 'center'\n },\n questionHelp: {\n fontSize: 12,\n lineHeight: 16,\n color: theme.colors.gray.medium,\n marginBottom: 0,\n marginTop: theme.spacing.small,\n textAlign: 'center'\n },\n choicesScrollView: {\n marginTop: 20,\n width: '100%'\n },\n choicesScrollContent: {\n flexGrow: 1,\n justifyContent: 'space-around',\n padding: 10\n }\n });\n\ntype QuestionProps = {\n autoplayMedia: boolean;\n answerUI: SlideProps['answerUI'];\n isKeyboardVisible: boolean;\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {\n answerUI,\n questionText,\n questionOrigin = '',\n isKeyboardVisible,\n autoplayMedia = false\n } = props;\n const {theme} = useTemplateContext();\n const [style, setStyle] = useState<StyleSheetType>();\n\n useEffect(() => {\n const questionStyle = createQuestionStyle(theme);\n setStyle(questionStyle);\n }, [theme]);\n\n if (!answerUI || !questionText || !style) return null;\n\n const hasVideoOrImage =\n answerUI.media?.type && [TYPE_VIDEO, TYPE_IMAGE].includes(answerUI.media.type);\n\n return (\n <>\n <View style={style.questionHeading}>\n <Html style={style.questionOrigin}>{questionOrigin}</Html>\n <Html style={style.questionText}>{questionText}</Html>\n <Html style={style.questionHelp}>{get('help', answerUI)}</Html>\n </View>\n <ScrollView\n style={style.choicesScrollView}\n contentContainerStyle={style.choicesScrollContent}\n showsHorizontalScrollIndicator={false}\n showsVerticalScrollIndicator={false}\n >\n {!isKeyboardVisible && hasVideoOrImage ? (\n <MediaView media={answerUI.media} autoplay={autoplayMedia} />\n ) : null}\n <View\n style={{\n marginTop: hasVideoOrImage ? 30 : 0\n }}\n >\n <Answer {...answerUI} />\n </View>\n </ScrollView>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n hiddenBackgroundToLockActions: ViewStyle;\n};\n\nconst createSlideStyle = (\n num: number,\n screenWidth: number,\n isKeyboardVisible: boolean\n): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n hiddenBackgroundToLockActions: {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n backgroundColor: '#00000000'\n },\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: (isKeyboardVisible ? 5 : 34) + num * 5,\n backgroundColor: '#fff', // theme.colors.white\n height: '90%',\n width: slideWidth,\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: 25,\n shadowColor: '#000',\n shadowOffset: {width: 0, height: -1},\n shadowOpacity: 0.05,\n shadowRadius: 16,\n elevation: 10 - num * 1,\n borderRadius: 16\n }\n });\n};\n\nconst Slide = (props: ReviewSlideProps) => {\n const {animatedStyle, slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n const [isValidated, setValidated] = useState<boolean>(false);\n const [isKeyboardVisible, setKeyboardVisible] = useState<boolean>(false);\n\n useEffect(() => {\n const showListener = Keyboard.addListener('keyboardDidShow', () => {\n setKeyboardVisible(true);\n });\n\n const hideListener = Keyboard.addListener('keyboardDidHide', () => {\n setKeyboardVisible(false);\n });\n\n return () => {\n showListener.remove();\n hideListener.remove();\n };\n }, []);\n\n const handleValidatePress = useCallback(() => {\n Keyboard.dismiss();\n setValidated(true);\n\n // calling the onclick later, after react has rerendered, to display the locking BG as soon as possible\n setTimeout(() => {\n validateButton.onClick();\n }, 20);\n\n // only to create on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const {width} = useWindowDimensions();\n const slideStyle = useMemo(\n () => createSlideStyle(num, width, isKeyboardVisible),\n [num, width, isKeyboardVisible]\n );\n const isFirstSlide = num === 1;\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <View style={slideStyle.slide} />;\n }\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n autoplayMedia={isFirstSlide}\n isKeyboardVisible={isKeyboardVisible}\n key=\"question-container\"\n />\n {isKeyboardVisible ? null : (\n <Button\n disabled={isValidated || validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n )}\n {isValidated ? <View style={slideStyle.hiddenBackgroundToLockActions} /> : null}\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </Animated.View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coorpacademy/components",
|
|
3
|
-
"version": "11.12.3
|
|
3
|
+
"version": "11.12.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -166,5 +166,5 @@
|
|
|
166
166
|
"last 2 versions",
|
|
167
167
|
"IE 11"
|
|
168
168
|
],
|
|
169
|
-
"gitHead": "
|
|
169
|
+
"gitHead": "109b37249a4ab0548cae8e58c802151a819ae440"
|
|
170
170
|
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/// <reference path="../../../src/globals.d.ts" />
|
|
2
|
-
export namespace ICONS {
|
|
3
|
-
export { ArrowIcon as arrow };
|
|
4
|
-
}
|
|
5
|
-
export default ExpandableItem;
|
|
6
|
-
import { NovaCompositionNavigationArrowDown as ArrowIcon } from "@coorpacademy/nova-icons";
|
|
7
|
-
declare function ExpandableItem({ icon, title, isExpended, content, onClick, image }: {
|
|
8
|
-
icon: any;
|
|
9
|
-
title: any;
|
|
10
|
-
isExpended: any;
|
|
11
|
-
content: any;
|
|
12
|
-
onClick: any;
|
|
13
|
-
image: any;
|
|
14
|
-
}): JSX.Element;
|
|
15
|
-
declare namespace ExpandableItem {
|
|
16
|
-
namespace propTypes {
|
|
17
|
-
const title: PropTypes.Requireable<string>;
|
|
18
|
-
const icon: PropTypes.Requireable<string>;
|
|
19
|
-
const isExpended: PropTypes.Requireable<boolean>;
|
|
20
|
-
const content: PropTypes.Requireable<string>;
|
|
21
|
-
const image: PropTypes.Requireable<string>;
|
|
22
|
-
const onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
import PropTypes from "prop-types";
|
|
26
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/expandable-item/index.js"],"names":[],"mappings":";;;;;;AAWA;;;;;;;gBAqBC"}
|