@coorpacademy/components 11.0.1 → 11.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/es/atom/picture/index.js +5 -8
  2. package/es/atom/picture/index.js.map +1 -1
  3. package/es/molecule/discipline-scope/index.d.ts +1 -0
  4. package/es/molecule/forum/forum-comment/index.d.ts +1 -0
  5. package/es/molecule/forum/forum-comment/index.d.ts.map +1 -1
  6. package/es/molecule/forum/forum-comment/index.js +5 -2
  7. package/es/molecule/forum/forum-comment/index.js.map +1 -1
  8. package/es/molecule/forum/forum-post/index.d.ts +2 -0
  9. package/es/molecule/forum/forum-post/index.d.ts.map +1 -1
  10. package/es/molecule/forum/forum-post/index.js +8 -1
  11. package/es/molecule/forum/forum-post/index.js.map +1 -1
  12. package/es/molecule/scope-content/index.d.ts +1 -0
  13. package/es/organism/discussion/index.d.ts +1 -0
  14. package/es/organism/discussion/index.d.ts.map +1 -1
  15. package/es/organism/discussion/index.js +4 -1
  16. package/es/organism/discussion/index.js.map +1 -1
  17. package/es/organism/review-slide/index.native.js +6 -3
  18. package/es/organism/review-slide/index.native.js.map +1 -1
  19. package/es/organism/review-slide/prop-types.d.ts +2 -0
  20. package/es/organism/review-slide/prop-types.d.ts.map +1 -1
  21. package/es/organism/review-slide/prop-types.js.map +1 -1
  22. package/es/organism/review-stacked-slides/index.native.d.ts +1 -1
  23. package/es/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  24. package/es/organism/review-stacked-slides/index.native.js +82 -6
  25. package/es/organism/review-stacked-slides/index.native.js.map +1 -1
  26. package/es/template/app-player/popin-end/index.d.ts +1 -0
  27. package/es/template/app-player/popin-end/summary.d.ts +1 -0
  28. package/es/template/common/discipline/index.d.ts +1 -0
  29. package/lib/atom/picture/index.js +5 -8
  30. package/lib/atom/picture/index.js.map +1 -1
  31. package/lib/molecule/discipline-scope/index.d.ts +1 -0
  32. package/lib/molecule/forum/forum-comment/index.d.ts +1 -0
  33. package/lib/molecule/forum/forum-comment/index.d.ts.map +1 -1
  34. package/lib/molecule/forum/forum-comment/index.js +5 -2
  35. package/lib/molecule/forum/forum-comment/index.js.map +1 -1
  36. package/lib/molecule/forum/forum-post/index.d.ts +2 -0
  37. package/lib/molecule/forum/forum-post/index.d.ts.map +1 -1
  38. package/lib/molecule/forum/forum-post/index.js +8 -1
  39. package/lib/molecule/forum/forum-post/index.js.map +1 -1
  40. package/lib/molecule/scope-content/index.d.ts +1 -0
  41. package/lib/organism/discussion/index.d.ts +1 -0
  42. package/lib/organism/discussion/index.d.ts.map +1 -1
  43. package/lib/organism/discussion/index.js +4 -1
  44. package/lib/organism/discussion/index.js.map +1 -1
  45. package/lib/organism/review-slide/index.native.js +6 -3
  46. package/lib/organism/review-slide/index.native.js.map +1 -1
  47. package/lib/organism/review-slide/prop-types.d.ts +2 -0
  48. package/lib/organism/review-slide/prop-types.d.ts.map +1 -1
  49. package/lib/organism/review-slide/prop-types.js.map +1 -1
  50. package/lib/organism/review-stacked-slides/index.native.d.ts +1 -1
  51. package/lib/organism/review-stacked-slides/index.native.d.ts.map +1 -1
  52. package/lib/organism/review-stacked-slides/index.native.js +81 -5
  53. package/lib/organism/review-stacked-slides/index.native.js.map +1 -1
  54. package/lib/template/app-player/popin-end/index.d.ts +1 -0
  55. package/lib/template/app-player/popin-end/summary.d.ts +1 -0
  56. package/lib/template/common/discipline/index.d.ts +1 -0
  57. package/package.json +3 -3
@@ -15,16 +15,12 @@ import PropTypes from 'prop-types';
15
15
  import { SrcPropType } from '../../util/proptypes';
16
16
  import style from './style.css';
17
17
 
18
- const toSrcSet = ({
19
- src
20
- }) => {
18
+ const toSrcSet = src => {
21
19
  if (!_isObject(src)) return {};
22
20
  return _pipe(_set('srcSet', _pipe(_toPairs, _filter(([key, url]) => url), _map(([key, url]) => `${url} ${key}`), _join(','))(src)), _set('src', _get('1x', src)))({});
23
21
  };
24
22
 
25
- const toSetAlt = ({
26
- alt
27
- }) => {
23
+ const toSetAlt = alt => {
28
24
  return alt ? {
29
25
  alt
30
26
  } : {
@@ -35,7 +31,8 @@ const toSetAlt = ({
35
31
 
36
32
  const Picture = props => {
37
33
  const {
38
- src
34
+ src,
35
+ alt
39
36
  } = props;
40
37
 
41
38
  if (_isNil(src)) {
@@ -44,7 +41,7 @@ const Picture = props => {
44
41
  });
45
42
  }
46
43
 
47
- return /*#__PURE__*/React.createElement("img", _extends({}, props, toSrcSet(props), toSetAlt(props)));
44
+ return /*#__PURE__*/React.createElement("img", _extends({}, props, toSrcSet(src), toSetAlt(alt)));
48
45
  };
49
46
 
50
47
  Picture.propTypes = process.env.NODE_ENV !== "production" ? {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","SrcPropType","style","toSrcSet","src","key","url","toSetAlt","alt","Picture","props","empty","propTypes","oneOfType","objectOf","string"],"sources":["../../../src/atom/picture/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {filter, get, isNil, isObject, join, map, pipe, set, toPairs} from 'lodash/fp';\nimport {SrcPropType} from '../../util/proptypes';\nimport style from './style.css';\n\nconst toSrcSet = ({src}) => {\n if (!isObject(src)) return {};\n return pipe(\n set(\n 'srcSet',\n pipe(\n toPairs,\n filter(([key, url]) => url),\n map(([key, url]) => `${url} ${key}`),\n join(',')\n )(src)\n ),\n set('src', get('1x', src))\n )({});\n};\n\nconst toSetAlt = ({alt}) => {\n return alt ? {alt} : {alt: '', 'aria-hidden': true};\n};\n\nconst Picture = props => {\n const {src} = props;\n if (isNil(src)) {\n return <div className={style.empty} />;\n }\n return <img {...props} {...toSrcSet(props)} {...toSetAlt(props)} />;\n};\n\nPicture.propTypes = {\n src: PropTypes.oneOfType([SrcPropType, PropTypes.objectOf(SrcPropType)]),\n alt: PropTypes.string\n};\n\nexport default Picture;\n"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAAQC,WAAR,QAA0B,sBAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAG,CAAC;EAACC;AAAD,CAAD,KAAW;EAC1B,IAAI,CAAC,UAASA,GAAT,CAAL,EAAoB,OAAO,EAAP;EACpB,OAAO,MACL,KACE,QADF,EAEE,gBAEE,QAAO,CAAC,CAACC,GAAD,EAAMC,GAAN,CAAD,KAAgBA,GAAvB,CAFF,EAGE,KAAI,CAAC,CAACD,GAAD,EAAMC,GAAN,CAAD,KAAiB,GAAEA,GAAI,IAAGD,GAAI,EAAlC,CAHF,EAIE,MAAK,GAAL,CAJF,EAKED,GALF,CAFF,CADK,EAUL,KAAI,KAAJ,EAAW,KAAI,IAAJ,EAAUA,GAAV,CAAX,CAVK,EAWL,EAXK,CAAP;AAYD,CAdD;;AAgBA,MAAMG,QAAQ,GAAG,CAAC;EAACC;AAAD,CAAD,KAAW;EAC1B,OAAOA,GAAG,GAAG;IAACA;EAAD,CAAH,GAAW;IAACA,GAAG,EAAE,EAAN;IAAU,eAAe;EAAzB,CAArB;AACD,CAFD;;AAIA,MAAMC,OAAO,GAAGC,KAAK,IAAI;EACvB,MAAM;IAACN;EAAD,IAAQM,KAAd;;EACA,IAAI,OAAMN,GAAN,CAAJ,EAAgB;IACd,oBAAO;MAAK,SAAS,EAAEF,KAAK,CAACS;IAAtB,EAAP;EACD;;EACD,oBAAO,wCAASD,KAAT,EAAoBP,QAAQ,CAACO,KAAD,CAA5B,EAAyCH,QAAQ,CAACG,KAAD,CAAjD,EAAP;AACD,CAND;;AAQAD,OAAO,CAACG,SAAR,2CAAoB;EAClBR,GAAG,EAAEJ,SAAS,CAACa,SAAV,CAAoB,CAACZ,WAAD,EAAcD,SAAS,CAACc,QAAV,CAAmBb,WAAnB,CAAd,CAApB,CADa;EAElBO,GAAG,EAAER,SAAS,CAACe;AAFG,CAApB;AAKA,eAAeN,OAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","SrcPropType","style","toSrcSet","src","key","url","toSetAlt","alt","Picture","props","empty","propTypes","oneOfType","objectOf","string"],"sources":["../../../src/atom/picture/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {filter, get, isNil, isObject, join, map, pipe, set, toPairs} from 'lodash/fp';\nimport {SrcPropType} from '../../util/proptypes';\nimport style from './style.css';\n\nconst toSrcSet = src => {\n if (!isObject(src)) return {};\n return pipe(\n set(\n 'srcSet',\n pipe(\n toPairs,\n filter(([key, url]) => url),\n map(([key, url]) => `${url} ${key}`),\n join(',')\n )(src)\n ),\n set('src', get('1x', src))\n )({});\n};\n\nconst toSetAlt = alt => {\n return alt ? {alt} : {alt: '', 'aria-hidden': true};\n};\n\nconst Picture = props => {\n const {src, alt} = props;\n if (isNil(src)) {\n return <div className={style.empty} />;\n }\n return <img {...props} {...toSrcSet(src)} {...toSetAlt(alt)} />;\n};\n\nPicture.propTypes = {\n src: PropTypes.oneOfType([SrcPropType, PropTypes.objectOf(SrcPropType)]),\n alt: PropTypes.string\n};\n\nexport default Picture;\n"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,SAAQC,WAAR,QAA0B,sBAA1B;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,QAAQ,GAAGC,GAAG,IAAI;EACtB,IAAI,CAAC,UAASA,GAAT,CAAL,EAAoB,OAAO,EAAP;EACpB,OAAO,MACL,KACE,QADF,EAEE,gBAEE,QAAO,CAAC,CAACC,GAAD,EAAMC,GAAN,CAAD,KAAgBA,GAAvB,CAFF,EAGE,KAAI,CAAC,CAACD,GAAD,EAAMC,GAAN,CAAD,KAAiB,GAAEA,GAAI,IAAGD,GAAI,EAAlC,CAHF,EAIE,MAAK,GAAL,CAJF,EAKED,GALF,CAFF,CADK,EAUL,KAAI,KAAJ,EAAW,KAAI,IAAJ,EAAUA,GAAV,CAAX,CAVK,EAWL,EAXK,CAAP;AAYD,CAdD;;AAgBA,MAAMG,QAAQ,GAAGC,GAAG,IAAI;EACtB,OAAOA,GAAG,GAAG;IAACA;EAAD,CAAH,GAAW;IAACA,GAAG,EAAE,EAAN;IAAU,eAAe;EAAzB,CAArB;AACD,CAFD;;AAIA,MAAMC,OAAO,GAAGC,KAAK,IAAI;EACvB,MAAM;IAACN,GAAD;IAAMI;EAAN,IAAaE,KAAnB;;EACA,IAAI,OAAMN,GAAN,CAAJ,EAAgB;IACd,oBAAO;MAAK,SAAS,EAAEF,KAAK,CAACS;IAAtB,EAAP;EACD;;EACD,oBAAO,wCAASD,KAAT,EAAoBP,QAAQ,CAACC,GAAD,CAA5B,EAAuCG,QAAQ,CAACC,GAAD,CAA/C,EAAP;AACD,CAND;;AAQAC,OAAO,CAACG,SAAR,2CAAoB;EAClBR,GAAG,EAAEJ,SAAS,CAACa,SAAV,CAAoB,CAACZ,WAAD,EAAcD,SAAS,CAACc,QAAV,CAAmBb,WAAnB,CAAd,CAApB,CADa;EAElBO,GAAG,EAAER,SAAS,CAACe;AAFG,CAApB;AAKA,eAAeN,OAAf"}
@@ -26,6 +26,7 @@ declare namespace DisciplineScope {
26
26
  avatar: import("prop-types").Requireable<any>;
27
27
  loading: import("prop-types").Requireable<boolean>;
28
28
  value: import("prop-types").Requireable<string>;
29
+ profileAvatarAlt: import("prop-types").Requireable<string>;
29
30
  title: import("prop-types").Requireable<string>;
30
31
  onPost: import("prop-types").Requireable<(...args: any[]) => any>;
31
32
  onChange: import("prop-types").Requireable<(...args: any[]) => any>;
@@ -27,6 +27,7 @@ declare namespace ForumComment {
27
27
  }
28
28
  namespace propTypes {
29
29
  export const value: PropTypes.Requireable<string>;
30
+ export const profileAvatarAlt: PropTypes.Requireable<string>;
30
31
  export { SrcPropType as avatar };
31
32
  export const onChange: PropTypes.Requireable<(...args: any[]) => any>;
32
33
  export const onPost: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/forum/forum-comment/index.js"],"names":[],"mappings":";AASA,qEA+CC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/forum/forum-comment/index.js"],"names":[],"mappings":";AASA,qEAuDC"}
@@ -20,7 +20,8 @@ const ForumComment = (props, context) => {
20
20
  value,
21
21
  textareaDisabled,
22
22
  postDisabled,
23
- newPost = false
23
+ newPost = false,
24
+ profileAvatarAlt
24
25
  } = props;
25
26
 
26
27
  const primary = _get('common.primary', skin);
@@ -30,7 +31,8 @@ const ForumComment = (props, context) => {
30
31
  const avatarView = avatar ? /*#__PURE__*/React.createElement("div", {
31
32
  className: style.image
32
33
  }, /*#__PURE__*/React.createElement("img", {
33
- src: avatar
34
+ src: avatar,
35
+ alt: profileAvatarAlt
34
36
  })) : null;
35
37
  const button = /*#__PURE__*/React.createElement("div", {
36
38
  className: style.post
@@ -65,6 +67,7 @@ ForumComment.contextTypes = {
65
67
  };
66
68
  ForumComment.propTypes = process.env.NODE_ENV !== "production" ? {
67
69
  value: PropTypes.string,
70
+ profileAvatarAlt: PropTypes.string,
68
71
  avatar: SrcPropType,
69
72
  onChange: PropTypes.func,
70
73
  onPost: PropTypes.func,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","Provider","Button","style","ForumComment","props","context","translate","skin","avatar","onPost","onChange","value","textareaDisabled","postDisabled","newPost","primary","light","avatarView","image","button","post","backgroundColor","disabledButton","container","wrapper","comment","contextTypes","childContextTypes","propTypes","string","func","bool"],"sources":["../../../../src/molecule/forum/forum-comment/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport style from './style.css';\n\nconst ForumComment = (props, context) => {\n const {translate, skin} = context;\n const {avatar, onPost, onChange, value, textareaDisabled, postDisabled, newPost = false} = props;\n\n const primary = get('common.primary', skin);\n const light = get('common.light', skin);\n\n const avatarView = avatar ? (\n <div className={style.image}>\n <img src={avatar} />\n </div>\n ) : null;\n\n const button = (\n <div className={style.post}>\n <Button\n type=\"link\"\n onClick={!postDisabled ? onPost : noop}\n disabled={postDisabled}\n submitValue={translate('Post')}\n style={{\n backgroundColor: postDisabled ? light : primary\n }}\n className={postDisabled ? style.disabledButton : style.button}\n />\n </div>\n );\n\n return (\n <div\n data-name=\"forumComment\"\n className={classnames(style.container, newPost ? style.newPost : null)}\n >\n <div className={classnames(style.wrapper, newPost ? style.newPost : null)}>\n {avatarView}\n <div className={style.comment}>\n <textarea\n placeholder={translate('Write something here')}\n value={value}\n onChange={onChange}\n disabled={textareaDisabled}\n />\n </div>\n </div>\n {button}\n </div>\n );\n};\n\nForumComment.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumComment.propTypes = {\n value: PropTypes.string,\n avatar: SrcPropType,\n onChange: PropTypes.func,\n onPost: PropTypes.func,\n newPost: PropTypes.bool,\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool\n};\nexport default ForumComment;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,WAAR,QAA0B,yBAA1B;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,OAAOC,MAAP,MAAmB,sBAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,YAAY,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACvC,MAAM;IAACC,SAAD;IAAYC;EAAZ,IAAoBF,OAA1B;EACA,MAAM;IAACG,MAAD;IAASC,MAAT;IAAiBC,QAAjB;IAA2BC,KAA3B;IAAkCC,gBAAlC;IAAoDC,YAApD;IAAkEC,OAAO,GAAG;EAA5E,IAAqFV,KAA3F;;EAEA,MAAMW,OAAO,GAAG,KAAI,gBAAJ,EAAsBR,IAAtB,CAAhB;;EACA,MAAMS,KAAK,GAAG,KAAI,cAAJ,EAAoBT,IAApB,CAAd;;EAEA,MAAMU,UAAU,GAAGT,MAAM,gBACvB;IAAK,SAAS,EAAEN,KAAK,CAACgB;EAAtB,gBACE;IAAK,GAAG,EAAEV;EAAV,EADF,CADuB,GAIrB,IAJJ;EAMA,MAAMW,MAAM,gBACV;IAAK,SAAS,EAAEjB,KAAK,CAACkB;EAAtB,gBACE,oBAAC,MAAD;IACE,IAAI,EAAC,MADP;IAEE,OAAO,EAAE,CAACP,YAAD,GAAgBJ,MAAhB,QAFX;IAGE,QAAQ,EAAEI,YAHZ;IAIE,WAAW,EAAEP,SAAS,CAAC,MAAD,CAJxB;IAKE,KAAK,EAAE;MACLe,eAAe,EAAER,YAAY,GAAGG,KAAH,GAAWD;IADnC,CALT;IAQE,SAAS,EAAEF,YAAY,GAAGX,KAAK,CAACoB,cAAT,GAA0BpB,KAAK,CAACiB;EARzD,EADF,CADF;EAeA,oBACE;IACE,aAAU,cADZ;IAEE,SAAS,EAAErB,UAAU,CAACI,KAAK,CAACqB,SAAP,EAAkBT,OAAO,GAAGZ,KAAK,CAACY,OAAT,GAAmB,IAA5C;EAFvB,gBAIE;IAAK,SAAS,EAAEhB,UAAU,CAACI,KAAK,CAACsB,OAAP,EAAgBV,OAAO,GAAGZ,KAAK,CAACY,OAAT,GAAmB,IAA1C;EAA1B,GACGG,UADH,eAEE;IAAK,SAAS,EAAEf,KAAK,CAACuB;EAAtB,gBACE;IACE,WAAW,EAAEnB,SAAS,CAAC,sBAAD,CADxB;IAEE,KAAK,EAAEK,KAFT;IAGE,QAAQ,EAAED,QAHZ;IAIE,QAAQ,EAAEE;EAJZ,EADF,CAFF,CAJF,EAeGO,MAfH,CADF;AAmBD,CA/CD;;AAiDAhB,YAAY,CAACuB,YAAb,GAA4B;EAC1BpB,SAAS,EAAEN,QAAQ,CAAC2B,iBAAT,CAA2BrB,SADZ;EAE1BC,IAAI,EAAEP,QAAQ,CAAC2B,iBAAT,CAA2BpB;AAFP,CAA5B;AAKAJ,YAAY,CAACyB,SAAb,2CAAyB;EACvBjB,KAAK,EAAEd,SAAS,CAACgC,MADM;EAEvBrB,MAAM,EAAET,WAFe;EAGvBW,QAAQ,EAAEb,SAAS,CAACiC,IAHG;EAIvBrB,MAAM,EAAEZ,SAAS,CAACiC,IAJK;EAKvBhB,OAAO,EAAEjB,SAAS,CAACkC,IALI;EAMvBnB,gBAAgB,EAAEf,SAAS,CAACkC,IANL;EAOvBlB,YAAY,EAAEhB,SAAS,CAACkC;AAPD,CAAzB;AASA,eAAe5B,YAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","Provider","Button","style","ForumComment","props","context","translate","skin","avatar","onPost","onChange","value","textareaDisabled","postDisabled","newPost","profileAvatarAlt","primary","light","avatarView","image","button","post","backgroundColor","disabledButton","container","wrapper","comment","contextTypes","childContextTypes","propTypes","string","func","bool"],"sources":["../../../../src/molecule/forum/forum-comment/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {get, noop} from 'lodash/fp';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Button from '../../../atom/button';\nimport style from './style.css';\n\nconst ForumComment = (props, context) => {\n const {translate, skin} = context;\n const {\n avatar,\n onPost,\n onChange,\n value,\n textareaDisabled,\n postDisabled,\n newPost = false,\n profileAvatarAlt\n } = props;\n const primary = get('common.primary', skin);\n const light = get('common.light', skin);\n\n const avatarView = avatar ? (\n <div className={style.image}>\n <img src={avatar} alt={profileAvatarAlt} />\n </div>\n ) : null;\n\n const button = (\n <div className={style.post}>\n <Button\n type=\"link\"\n onClick={!postDisabled ? onPost : noop}\n disabled={postDisabled}\n submitValue={translate('Post')}\n style={{\n backgroundColor: postDisabled ? light : primary\n }}\n className={postDisabled ? style.disabledButton : style.button}\n />\n </div>\n );\n\n return (\n <div\n data-name=\"forumComment\"\n className={classnames(style.container, newPost ? style.newPost : null)}\n >\n <div className={classnames(style.wrapper, newPost ? style.newPost : null)}>\n {avatarView}\n <div className={style.comment}>\n <textarea\n placeholder={translate('Write something here')}\n value={value}\n onChange={onChange}\n disabled={textareaDisabled}\n />\n </div>\n </div>\n {button}\n </div>\n );\n};\n\nForumComment.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumComment.propTypes = {\n value: PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n avatar: SrcPropType,\n onChange: PropTypes.func,\n onPost: PropTypes.func,\n newPost: PropTypes.bool,\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool\n};\nexport default ForumComment;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AAEA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,WAAR,QAA0B,yBAA1B;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,OAAOC,MAAP,MAAmB,sBAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,MAAMC,YAAY,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;EACvC,MAAM;IAACC,SAAD;IAAYC;EAAZ,IAAoBF,OAA1B;EACA,MAAM;IACJG,MADI;IAEJC,MAFI;IAGJC,QAHI;IAIJC,KAJI;IAKJC,gBALI;IAMJC,YANI;IAOJC,OAAO,GAAG,KAPN;IAQJC;EARI,IASFX,KATJ;;EAUA,MAAMY,OAAO,GAAG,KAAI,gBAAJ,EAAsBT,IAAtB,CAAhB;;EACA,MAAMU,KAAK,GAAG,KAAI,cAAJ,EAAoBV,IAApB,CAAd;;EAEA,MAAMW,UAAU,GAAGV,MAAM,gBACvB;IAAK,SAAS,EAAEN,KAAK,CAACiB;EAAtB,gBACE;IAAK,GAAG,EAAEX,MAAV;IAAkB,GAAG,EAAEO;EAAvB,EADF,CADuB,GAIrB,IAJJ;EAMA,MAAMK,MAAM,gBACV;IAAK,SAAS,EAAElB,KAAK,CAACmB;EAAtB,gBACE,oBAAC,MAAD;IACE,IAAI,EAAC,MADP;IAEE,OAAO,EAAE,CAACR,YAAD,GAAgBJ,MAAhB,QAFX;IAGE,QAAQ,EAAEI,YAHZ;IAIE,WAAW,EAAEP,SAAS,CAAC,MAAD,CAJxB;IAKE,KAAK,EAAE;MACLgB,eAAe,EAAET,YAAY,GAAGI,KAAH,GAAWD;IADnC,CALT;IAQE,SAAS,EAAEH,YAAY,GAAGX,KAAK,CAACqB,cAAT,GAA0BrB,KAAK,CAACkB;EARzD,EADF,CADF;EAeA,oBACE;IACE,aAAU,cADZ;IAEE,SAAS,EAAEtB,UAAU,CAACI,KAAK,CAACsB,SAAP,EAAkBV,OAAO,GAAGZ,KAAK,CAACY,OAAT,GAAmB,IAA5C;EAFvB,gBAIE;IAAK,SAAS,EAAEhB,UAAU,CAACI,KAAK,CAACuB,OAAP,EAAgBX,OAAO,GAAGZ,KAAK,CAACY,OAAT,GAAmB,IAA1C;EAA1B,GACGI,UADH,eAEE;IAAK,SAAS,EAAEhB,KAAK,CAACwB;EAAtB,gBACE;IACE,WAAW,EAAEpB,SAAS,CAAC,sBAAD,CADxB;IAEE,KAAK,EAAEK,KAFT;IAGE,QAAQ,EAAED,QAHZ;IAIE,QAAQ,EAAEE;EAJZ,EADF,CAFF,CAJF,EAeGQ,MAfH,CADF;AAmBD,CAvDD;;AAyDAjB,YAAY,CAACwB,YAAb,GAA4B;EAC1BrB,SAAS,EAAEN,QAAQ,CAAC4B,iBAAT,CAA2BtB,SADZ;EAE1BC,IAAI,EAAEP,QAAQ,CAAC4B,iBAAT,CAA2BrB;AAFP,CAA5B;AAKAJ,YAAY,CAAC0B,SAAb,2CAAyB;EACvBlB,KAAK,EAAEd,SAAS,CAACiC,MADM;EAEvBf,gBAAgB,EAAElB,SAAS,CAACiC,MAFL;EAGvBtB,MAAM,EAAET,WAHe;EAIvBW,QAAQ,EAAEb,SAAS,CAACkC,IAJG;EAKvBtB,MAAM,EAAEZ,SAAS,CAACkC,IALK;EAMvBjB,OAAO,EAAEjB,SAAS,CAACmC,IANI;EAOvBpB,gBAAgB,EAAEf,SAAS,CAACmC,IAPL;EAQvBnB,YAAY,EAAEhB,SAAS,CAACmC;AARD,CAAzB;AAUA,eAAe7B,YAAf"}
@@ -28,6 +28,8 @@ declare namespace ForumPost {
28
28
  namespace propTypes {
29
29
  export const id: PropTypes.Requireable<string>;
30
30
  export const author: PropTypes.Requireable<string>;
31
+ export const avatarAlt: PropTypes.Requireable<string>;
32
+ export const profileAvatarAlt: PropTypes.Requireable<string>;
31
33
  export const date: PropTypes.Requireable<string>;
32
34
  export const message: PropTypes.Requireable<string>;
33
35
  export { SrcPropType as avatar };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/forum/forum-post/index.js"],"names":[],"mappings":";AAUA,kEA6IC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecule/forum/forum-post/index.js"],"names":[],"mappings":";AAUA,kEAgJC"}
@@ -18,6 +18,8 @@ const ForumPost = (props, context) => {
18
18
  id,
19
19
  author,
20
20
  avatar,
21
+ avatarAlt,
22
+ profileAvatarAlt,
21
23
  date,
22
24
  message,
23
25
  answer,
@@ -71,7 +73,8 @@ const ForumPost = (props, context) => {
71
73
  className: style.image
72
74
  }, /*#__PURE__*/React.createElement(Picture, {
73
75
  src: avatar,
74
- className: style.avatar
76
+ className: style.avatar,
77
+ alt: avatarAlt
75
78
  })), /*#__PURE__*/React.createElement("span", {
76
79
  "data-name": "author",
77
80
  className: style.author
@@ -115,6 +118,7 @@ const ForumPost = (props, context) => {
115
118
  className: `${style.edition} ${showEditBox ? style.visible : ''}`
116
119
  }, /*#__PURE__*/React.createElement(ForumComment, {
117
120
  avatar: null,
121
+ profileAvatarAlt: profileAvatarAlt,
118
122
  value: edition,
119
123
  textareaDisabled: editionTextareaDisabled,
120
124
  postDisabled: editionPostDisabled,
@@ -124,6 +128,7 @@ const ForumPost = (props, context) => {
124
128
  className: `${style.answer} ${showAnswerBox ? style.visible : ''}`
125
129
  }, /*#__PURE__*/React.createElement(ForumComment, {
126
130
  avatar: answerAvatar,
131
+ profileAvatarAlt: profileAvatarAlt,
127
132
  textareaDisabled: answerTextareaDisabled,
128
133
  postDisabled: answerPostDisabled,
129
134
  value: answer,
@@ -139,6 +144,8 @@ ForumPost.contextTypes = {
139
144
  ForumPost.propTypes = process.env.NODE_ENV !== "production" ? {
140
145
  id: PropTypes.string,
141
146
  author: PropTypes.string,
147
+ avatarAlt: PropTypes.string,
148
+ profileAvatarAlt: PropTypes.string,
142
149
  date: PropTypes.string,
143
150
  message: PropTypes.string,
144
151
  avatar: SrcPropType,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","classnames","PropTypes","SrcPropType","Provider","Picture","ForumComment","style","ForumPost","props","context","translate","skin","id","author","avatar","date","message","answer","answerPostDisabled","answerTextareaDisabled","answerAvatar","answerable","editable","rejectable","mainPost","rejected","deleted","edition","editionPostDisabled","editionTextareaDisabled","showAnswerBox","showEditBox","onAnswer","onEdit","onPostAnswer","onPostEdition","onChangeAnswer","onChangeEdition","onModerate","onDelete","color","infoDeleted","answerLabel","editLabel","deleteLabel","rejectLabel","putBackLabel","messageClassName","deletedMessage","hiddenMessage","post","avatarWrapper","image","content","body","action","display","visible","contextTypes","childContextTypes","propTypes","string","bool","func"],"sources":["../../../../src/molecule/forum/forum-post/index.js"],"sourcesContent":["import React from 'react';\nimport {get, identity} from 'lodash/fp';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Picture from '../../../atom/picture';\nimport ForumComment from '../forum-comment';\nimport style from './style.css';\n\nconst ForumPost = (props, context) => {\n const {translate, skin} = context;\n const {\n id,\n author,\n avatar,\n date,\n message,\n answer,\n answerPostDisabled = false,\n answerTextareaDisabled = false,\n answerAvatar,\n answerable = true,\n editable = false,\n rejectable = false,\n mainPost = false,\n rejected = false,\n deleted = false,\n edition,\n editionPostDisabled = false,\n editionTextareaDisabled = false,\n showAnswerBox = false,\n showEditBox = false,\n onAnswer = identity,\n onEdit = identity,\n onPostAnswer = identity,\n onPostEdition = identity,\n onChangeAnswer = identity,\n onChangeEdition = identity,\n onModerate,\n onDelete\n } = props;\n const color = get('common.primary', skin);\n\n const infoDeleted = translate('This message has been removed by its author');\n const answerLabel = translate('Answer');\n const editLabel = translate('Edit');\n const deleteLabel = translate('Delete');\n const rejectLabel = translate('Reject');\n const putBackLabel = translate('Put back');\n\n let messageClassName = style.message;\n if (deleted) {\n messageClassName = style.deletedMessage;\n } else if (showEditBox) {\n messageClassName = style.hiddenMessage;\n }\n\n return (\n <div\n data-name=\"forumPost\"\n id={`forum-post-${id || 'to-be-posted'}`}\n className={classnames(\n mainPost ? style.mainPost : null,\n rejected ? style.rejected : style.post\n )}\n >\n <div className={style.avatarWrapper}>\n <div className={style.image}>\n <Picture src={avatar} className={style.avatar} />\n </div>\n <span data-name=\"author\" className={style.author}>\n {author}\n </span>\n </div>\n <div className={style.content}>\n <div>\n <span className={style.date}>{date}</span>\n </div>\n <div className={style.body}>\n <span\n className={style.action}\n onClick={onAnswer}\n style={{\n color,\n display: answerable && !deleted && !rejected ? 'block' : 'none'\n }}\n >\n {answerLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onEdit}\n style={{\n color,\n display: editable ? 'block' : 'none'\n }}\n >\n {editLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onDelete}\n style={{\n color,\n display: editable ? 'block' : 'none'\n }}\n >\n {deleteLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onModerate}\n style={{\n color,\n display: rejectable ? 'block' : 'none'\n }}\n >\n {rejected ? putBackLabel : rejectLabel}\n </span>\n\n <div className={messageClassName}>{deleted ? infoDeleted : message}</div>\n\n <div className={`${style.edition} ${showEditBox ? style.visible : ''}`}>\n <ForumComment\n avatar={null}\n value={edition}\n textareaDisabled={editionTextareaDisabled}\n postDisabled={editionPostDisabled}\n onPost={onPostEdition}\n onChange={onChangeEdition}\n />\n </div>\n\n <div className={`${style.answer} ${showAnswerBox ? style.visible : ''}`}>\n <ForumComment\n avatar={answerAvatar}\n textareaDisabled={answerTextareaDisabled}\n postDisabled={answerPostDisabled}\n value={answer}\n onPost={onPostAnswer}\n onChange={onChangeAnswer}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nForumPost.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumPost.propTypes = {\n id: PropTypes.string,\n author: PropTypes.string,\n date: PropTypes.string,\n message: PropTypes.string,\n avatar: SrcPropType,\n answerAvatar: SrcPropType,\n answer: PropTypes.string,\n edition: PropTypes.string,\n showAnswerBox: PropTypes.bool,\n showEditBox: PropTypes.bool,\n mainPost: PropTypes.bool,\n onAnswer: PropTypes.func,\n onEdit: PropTypes.func,\n onPostAnswer: PropTypes.func,\n onPostEdition: PropTypes.func,\n onChangeAnswer: PropTypes.func,\n onChangeEdition: PropTypes.func,\n onModerate: PropTypes.func,\n onDelete: PropTypes.func,\n answerPostDisabled: PropTypes.bool,\n answerTextareaDisabled: PropTypes.bool,\n answerable: PropTypes.bool,\n editable: PropTypes.bool,\n rejectable: PropTypes.bool,\n rejected: PropTypes.bool,\n deleted: PropTypes.bool,\n editionPostDisabled: PropTypes.bool,\n editionTextareaDisabled: PropTypes.bool\n};\n\nexport default ForumPost;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","classnames","PropTypes","SrcPropType","Provider","Picture","ForumComment","style","ForumPost","props","context","translate","skin","id","author","avatar","avatarAlt","profileAvatarAlt","date","message","answer","answerPostDisabled","answerTextareaDisabled","answerAvatar","answerable","editable","rejectable","mainPost","rejected","deleted","edition","editionPostDisabled","editionTextareaDisabled","showAnswerBox","showEditBox","onAnswer","onEdit","onPostAnswer","onPostEdition","onChangeAnswer","onChangeEdition","onModerate","onDelete","color","infoDeleted","answerLabel","editLabel","deleteLabel","rejectLabel","putBackLabel","messageClassName","deletedMessage","hiddenMessage","post","avatarWrapper","image","content","body","action","display","visible","contextTypes","childContextTypes","propTypes","string","bool","func"],"sources":["../../../../src/molecule/forum/forum-post/index.js"],"sourcesContent":["import React from 'react';\nimport {get, identity} from 'lodash/fp';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport {SrcPropType} from '../../../util/proptypes';\nimport Provider from '../../../atom/provider';\nimport Picture from '../../../atom/picture';\nimport ForumComment from '../forum-comment';\nimport style from './style.css';\n\nconst ForumPost = (props, context) => {\n const {translate, skin} = context;\n const {\n id,\n author,\n avatar,\n avatarAlt,\n profileAvatarAlt,\n date,\n message,\n answer,\n answerPostDisabled = false,\n answerTextareaDisabled = false,\n answerAvatar,\n answerable = true,\n editable = false,\n rejectable = false,\n mainPost = false,\n rejected = false,\n deleted = false,\n edition,\n editionPostDisabled = false,\n editionTextareaDisabled = false,\n showAnswerBox = false,\n showEditBox = false,\n onAnswer = identity,\n onEdit = identity,\n onPostAnswer = identity,\n onPostEdition = identity,\n onChangeAnswer = identity,\n onChangeEdition = identity,\n onModerate,\n onDelete\n } = props;\n const color = get('common.primary', skin);\n\n const infoDeleted = translate('This message has been removed by its author');\n const answerLabel = translate('Answer');\n const editLabel = translate('Edit');\n const deleteLabel = translate('Delete');\n const rejectLabel = translate('Reject');\n const putBackLabel = translate('Put back');\n let messageClassName = style.message;\n if (deleted) {\n messageClassName = style.deletedMessage;\n } else if (showEditBox) {\n messageClassName = style.hiddenMessage;\n }\n\n return (\n <div\n data-name=\"forumPost\"\n id={`forum-post-${id || 'to-be-posted'}`}\n className={classnames(\n mainPost ? style.mainPost : null,\n rejected ? style.rejected : style.post\n )}\n >\n <div className={style.avatarWrapper}>\n <div className={style.image}>\n <Picture src={avatar} className={style.avatar} alt={avatarAlt} />\n </div>\n <span data-name=\"author\" className={style.author}>\n {author}\n </span>\n </div>\n <div className={style.content}>\n <div>\n <span className={style.date}>{date}</span>\n </div>\n <div className={style.body}>\n <span\n className={style.action}\n onClick={onAnswer}\n style={{\n color,\n display: answerable && !deleted && !rejected ? 'block' : 'none'\n }}\n >\n {answerLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onEdit}\n style={{\n color,\n display: editable ? 'block' : 'none'\n }}\n >\n {editLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onDelete}\n style={{\n color,\n display: editable ? 'block' : 'none'\n }}\n >\n {deleteLabel}\n </span>\n\n <span\n className={style.action}\n onClick={onModerate}\n style={{\n color,\n display: rejectable ? 'block' : 'none'\n }}\n >\n {rejected ? putBackLabel : rejectLabel}\n </span>\n\n <div className={messageClassName}>{deleted ? infoDeleted : message}</div>\n\n <div className={`${style.edition} ${showEditBox ? style.visible : ''}`}>\n <ForumComment\n avatar={null}\n profileAvatarAlt={profileAvatarAlt}\n value={edition}\n textareaDisabled={editionTextareaDisabled}\n postDisabled={editionPostDisabled}\n onPost={onPostEdition}\n onChange={onChangeEdition}\n />\n </div>\n\n <div className={`${style.answer} ${showAnswerBox ? style.visible : ''}`}>\n <ForumComment\n avatar={answerAvatar}\n profileAvatarAlt={profileAvatarAlt}\n textareaDisabled={answerTextareaDisabled}\n postDisabled={answerPostDisabled}\n value={answer}\n onPost={onPostAnswer}\n onChange={onChangeAnswer}\n />\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nForumPost.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nForumPost.propTypes = {\n id: PropTypes.string,\n author: PropTypes.string,\n avatarAlt: PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n date: PropTypes.string,\n message: PropTypes.string,\n avatar: SrcPropType,\n answerAvatar: SrcPropType,\n answer: PropTypes.string,\n edition: PropTypes.string,\n showAnswerBox: PropTypes.bool,\n showEditBox: PropTypes.bool,\n mainPost: PropTypes.bool,\n onAnswer: PropTypes.func,\n onEdit: PropTypes.func,\n onPostAnswer: PropTypes.func,\n onPostEdition: PropTypes.func,\n onChangeAnswer: PropTypes.func,\n onChangeEdition: PropTypes.func,\n onModerate: PropTypes.func,\n onDelete: PropTypes.func,\n answerPostDisabled: PropTypes.bool,\n answerTextareaDisabled: PropTypes.bool,\n answerable: PropTypes.bool,\n editable: PropTypes.bool,\n rejectable: PropTypes.bool,\n rejected: PropTypes.bool,\n deleted: PropTypes.bool,\n editionPostDisabled: PropTypes.bool,\n editionTextareaDisabled: PropTypes.bool\n};\n\nexport default ForumPost;\n"],"mappings":"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"}
@@ -47,6 +47,7 @@ declare namespace ScopeContent {
47
47
  avatar: PropTypes.Requireable<any>;
48
48
  loading: PropTypes.Requireable<boolean>;
49
49
  value: PropTypes.Requireable<string>;
50
+ profileAvatarAlt: PropTypes.Requireable<string>;
50
51
  title: PropTypes.Requireable<string>;
51
52
  onPost: PropTypes.Requireable<(...args: any[]) => any>;
52
53
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -5,6 +5,7 @@ declare namespace Discussion {
5
5
  export { SrcPropType as avatar };
6
6
  export const loading: PropTypes.Requireable<boolean>;
7
7
  export const value: PropTypes.Requireable<string>;
8
+ export const profileAvatarAlt: PropTypes.Requireable<string>;
8
9
  export const title: PropTypes.Requireable<string>;
9
10
  export const onPost: PropTypes.Requireable<(...args: any[]) => any>;
10
11
  export const onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/discussion/index.js"],"names":[],"mappings":";AAUA,qDAiDC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organism/discussion/index.js"],"names":[],"mappings":";AAUA,qDAmDC"}
@@ -22,7 +22,8 @@ function Discussion(props) {
22
22
  hideComments,
23
23
  textareaDisabled,
24
24
  postDisabled,
25
- className
25
+ className,
26
+ profileAvatarAlt
26
27
  } = props;
27
28
  const threadsView = threads.map(thread => /*#__PURE__*/React.createElement(ForumThread, _extends({}, thread, {
28
29
  key: thread.id,
@@ -31,6 +32,7 @@ function Discussion(props) {
31
32
  const commentView = !hideComments ? /*#__PURE__*/React.createElement(ForumComment, {
32
33
  avatar: avatar,
33
34
  value: value,
35
+ profileAvatarAlt: profileAvatarAlt,
34
36
  newPost: true,
35
37
  onPost: onPost,
36
38
  onChange: onChange,
@@ -58,6 +60,7 @@ Discussion.propTypes = process.env.NODE_ENV !== "production" ? {
58
60
  avatar: SrcPropType,
59
61
  loading: PropTypes.bool,
60
62
  value: PropTypes.string,
63
+ profileAvatarAlt: PropTypes.string,
61
64
  title: PropTypes.string,
62
65
  onPost: PropTypes.func,
63
66
  onChange: PropTypes.func,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","ForumComment","ForumThread","postConditions","Loader","style","Discussion","props","threads","title","avatar","value","loading","onPost","onChange","hideComments","textareaDisabled","postDisabled","className","threadsView","map","thread","id","commentView","loader","header","__html","propTypes","bool","string","func","arrayOf","shape"],"sources":["../../../src/organism/discussion/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../util/proptypes';\nimport ForumComment from '../../molecule/forum/forum-comment';\nimport ForumThread from '../../molecule/forum/forum-thread';\nimport postConditions from '../../molecule/forum/post-conditions';\nimport Loader from '../../atom/loader';\nimport style from './style.css';\n\nfunction Discussion(props) {\n const {\n threads = [],\n title,\n avatar,\n value,\n loading,\n onPost,\n onChange,\n hideComments,\n textareaDisabled,\n postDisabled,\n className\n } = props;\n\n const threadsView = threads.map(thread => <ForumThread {...thread} key={thread.id} mainPost />);\n\n const commentView = !hideComments ? (\n <ForumComment\n avatar={avatar}\n value={value}\n newPost\n onPost={onPost}\n onChange={onChange}\n textareaDisabled={textareaDisabled}\n postDisabled={postDisabled}\n />\n ) : null;\n\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n\n return (\n <div data-name=\"discussion\" className={classnames(style.thread, className)}>\n <div className={style.header}>\n <h1\n id=\"forum-discussion\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n {commentView}\n </div>\n {threadsView}\n {loader}\n </div>\n );\n}\nDiscussion.propTypes = {\n avatar: SrcPropType,\n loading: PropTypes.bool,\n value: PropTypes.string,\n title: PropTypes.string,\n onPost: PropTypes.func,\n onChange: PropTypes.func,\n threads: PropTypes.arrayOf(PropTypes.shape(postConditions)),\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool,\n className: PropTypes.string,\n hideComments: PropTypes.bool\n};\n\nexport default Discussion;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,WAAR,QAA0B,sBAA1B;AACA,OAAOC,YAAP,MAAyB,oCAAzB;AACA,OAAOC,WAAP,MAAwB,mCAAxB;AACA,OAAOC,cAAP,MAA2B,sCAA3B;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,SAASC,UAAT,CAAoBC,KAApB,EAA2B;EACzB,MAAM;IACJC,OAAO,GAAG,EADN;IAEJC,KAFI;IAGJC,MAHI;IAIJC,KAJI;IAKJC,OALI;IAMJC,MANI;IAOJC,QAPI;IAQJC,YARI;IASJC,gBATI;IAUJC,YAVI;IAWJC;EAXI,IAYFX,KAZJ;EAcA,MAAMY,WAAW,GAAGX,OAAO,CAACY,GAAR,CAAYC,MAAM,iBAAI,oBAAC,WAAD,eAAiBA,MAAjB;IAAyB,GAAG,EAAEA,MAAM,CAACC,EAArC;IAAyC,QAAQ;EAAjD,GAAtB,CAApB;EAEA,MAAMC,WAAW,GAAG,CAACR,YAAD,gBAClB,oBAAC,YAAD;IACE,MAAM,EAAEL,MADV;IAEE,KAAK,EAAEC,KAFT;IAGE,OAAO,MAHT;IAIE,MAAM,EAAEE,MAJV;IAKE,QAAQ,EAAEC,QALZ;IAME,gBAAgB,EAAEE,gBANpB;IAOE,YAAY,EAAEC;EAPhB,EADkB,GAUhB,IAVJ;EAYA,MAAMO,MAAM,GAAGZ,OAAO,gBACpB;IAAK,SAAS,EAAEP,KAAK,CAACmB;EAAtB,gBACE,oBAAC,MAAD,OADF,CADoB,GAIlB,IAJJ;EAMA,oBACE;IAAK,aAAU,YAAf;IAA4B,SAAS,EAAEzB,UAAU,CAACM,KAAK,CAACgB,MAAP,EAAeH,SAAf;EAAjD,gBACE;IAAK,SAAS,EAAEb,KAAK,CAACoB;EAAtB,gBACE;IACE,EAAE,EAAC,kBADL,CAEE;IAFF;IAGE,uBAAuB,EAAE;MAACC,MAAM,EAAEjB;IAAT;EAH3B,EADF,EAMGc,WANH,CADF,EASGJ,WATH,EAUGK,MAVH,CADF;AAcD;;AACDlB,UAAU,CAACqB,SAAX,2CAAuB;EACrBjB,MAAM,EAAEV,WADa;EAErBY,OAAO,EAAEd,SAAS,CAAC8B,IAFE;EAGrBjB,KAAK,EAAEb,SAAS,CAAC+B,MAHI;EAIrBpB,KAAK,EAAEX,SAAS,CAAC+B,MAJI;EAKrBhB,MAAM,EAAEf,SAAS,CAACgC,IALG;EAMrBhB,QAAQ,EAAEhB,SAAS,CAACgC,IANC;EAOrBtB,OAAO,EAAEV,SAAS,CAACiC,OAAV,CAAkBjC,SAAS,CAACkC,KAAV,CAAgB7B,cAAhB,CAAlB,CAPY;EAQrBa,gBAAgB,EAAElB,SAAS,CAAC8B,IARP;EASrBX,YAAY,EAAEnB,SAAS,CAAC8B,IATH;EAUrBV,SAAS,EAAEpB,SAAS,CAAC+B,MAVA;EAWrBd,YAAY,EAAEjB,SAAS,CAAC8B;AAXH,CAAvB;AAcA,eAAetB,UAAf"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classnames","SrcPropType","ForumComment","ForumThread","postConditions","Loader","style","Discussion","props","threads","title","avatar","value","loading","onPost","onChange","hideComments","textareaDisabled","postDisabled","className","profileAvatarAlt","threadsView","map","thread","id","commentView","loader","header","__html","propTypes","bool","string","func","arrayOf","shape"],"sources":["../../../src/organism/discussion/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {SrcPropType} from '../../util/proptypes';\nimport ForumComment from '../../molecule/forum/forum-comment';\nimport ForumThread from '../../molecule/forum/forum-thread';\nimport postConditions from '../../molecule/forum/post-conditions';\nimport Loader from '../../atom/loader';\nimport style from './style.css';\n\nfunction Discussion(props) {\n const {\n threads = [],\n title,\n avatar,\n value,\n loading,\n onPost,\n onChange,\n hideComments,\n textareaDisabled,\n postDisabled,\n className,\n profileAvatarAlt\n } = props;\n\n const threadsView = threads.map(thread => <ForumThread {...thread} key={thread.id} mainPost />);\n\n const commentView = !hideComments ? (\n <ForumComment\n avatar={avatar}\n value={value}\n profileAvatarAlt={profileAvatarAlt}\n newPost\n onPost={onPost}\n onChange={onChange}\n textareaDisabled={textareaDisabled}\n postDisabled={postDisabled}\n />\n ) : null;\n\n const loader = loading ? (\n <div className={style.loader}>\n <Loader />\n </div>\n ) : null;\n\n return (\n <div data-name=\"discussion\" className={classnames(style.thread, className)}>\n <div className={style.header}>\n <h1\n id=\"forum-discussion\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: title}}\n />\n {commentView}\n </div>\n {threadsView}\n {loader}\n </div>\n );\n}\nDiscussion.propTypes = {\n avatar: SrcPropType,\n loading: PropTypes.bool,\n value: PropTypes.string,\n profileAvatarAlt: PropTypes.string,\n title: PropTypes.string,\n onPost: PropTypes.func,\n onChange: PropTypes.func,\n threads: PropTypes.arrayOf(PropTypes.shape(postConditions)),\n textareaDisabled: PropTypes.bool,\n postDisabled: PropTypes.bool,\n className: PropTypes.string,\n hideComments: PropTypes.bool\n};\n\nexport default Discussion;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAAQC,WAAR,QAA0B,sBAA1B;AACA,OAAOC,YAAP,MAAyB,oCAAzB;AACA,OAAOC,WAAP,MAAwB,mCAAxB;AACA,OAAOC,cAAP,MAA2B,sCAA3B;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,OAAOC,KAAP,MAAkB,aAAlB;;AAEA,SAASC,UAAT,CAAoBC,KAApB,EAA2B;EACzB,MAAM;IACJC,OAAO,GAAG,EADN;IAEJC,KAFI;IAGJC,MAHI;IAIJC,KAJI;IAKJC,OALI;IAMJC,MANI;IAOJC,QAPI;IAQJC,YARI;IASJC,gBATI;IAUJC,YAVI;IAWJC,SAXI;IAYJC;EAZI,IAaFZ,KAbJ;EAeA,MAAMa,WAAW,GAAGZ,OAAO,CAACa,GAAR,CAAYC,MAAM,iBAAI,oBAAC,WAAD,eAAiBA,MAAjB;IAAyB,GAAG,EAAEA,MAAM,CAACC,EAArC;IAAyC,QAAQ;EAAjD,GAAtB,CAApB;EAEA,MAAMC,WAAW,GAAG,CAACT,YAAD,gBAClB,oBAAC,YAAD;IACE,MAAM,EAAEL,MADV;IAEE,KAAK,EAAEC,KAFT;IAGE,gBAAgB,EAAEQ,gBAHpB;IAIE,OAAO,MAJT;IAKE,MAAM,EAAEN,MALV;IAME,QAAQ,EAAEC,QANZ;IAOE,gBAAgB,EAAEE,gBAPpB;IAQE,YAAY,EAAEC;EARhB,EADkB,GAWhB,IAXJ;EAaA,MAAMQ,MAAM,GAAGb,OAAO,gBACpB;IAAK,SAAS,EAAEP,KAAK,CAACoB;EAAtB,gBACE,oBAAC,MAAD,OADF,CADoB,GAIlB,IAJJ;EAMA,oBACE;IAAK,aAAU,YAAf;IAA4B,SAAS,EAAE1B,UAAU,CAACM,KAAK,CAACiB,MAAP,EAAeJ,SAAf;EAAjD,gBACE;IAAK,SAAS,EAAEb,KAAK,CAACqB;EAAtB,gBACE;IACE,EAAE,EAAC,kBADL,CAEE;IAFF;IAGE,uBAAuB,EAAE;MAACC,MAAM,EAAElB;IAAT;EAH3B,EADF,EAMGe,WANH,CADF,EASGJ,WATH,EAUGK,MAVH,CADF;AAcD;;AACDnB,UAAU,CAACsB,SAAX,2CAAuB;EACrBlB,MAAM,EAAEV,WADa;EAErBY,OAAO,EAAEd,SAAS,CAAC+B,IAFE;EAGrBlB,KAAK,EAAEb,SAAS,CAACgC,MAHI;EAIrBX,gBAAgB,EAAErB,SAAS,CAACgC,MAJP;EAKrBrB,KAAK,EAAEX,SAAS,CAACgC,MALI;EAMrBjB,MAAM,EAAEf,SAAS,CAACiC,IANG;EAOrBjB,QAAQ,EAAEhB,SAAS,CAACiC,IAPC;EAQrBvB,OAAO,EAAEV,SAAS,CAACkC,OAAV,CAAkBlC,SAAS,CAACmC,KAAV,CAAgB9B,cAAhB,CAAlB,CARY;EASrBa,gBAAgB,EAAElB,SAAS,CAAC+B,IATP;EAUrBZ,YAAY,EAAEnB,SAAS,CAAC+B,IAVH;EAWrBX,SAAS,EAAEpB,SAAS,CAACgC,MAXA;EAYrBf,YAAY,EAAEjB,SAAS,CAAC+B;AAZH,CAAvB;AAeA,eAAevB,UAAf"}
@@ -146,6 +146,7 @@ const createSlideStyle = (num, screenWidth) => {
146
146
 
147
147
  const Slide = props => {
148
148
  const {
149
+ animatedStyle,
149
150
  slide,
150
151
  correctionPopinProps,
151
152
  validateButton,
@@ -166,14 +167,16 @@ const Slide = props => {
166
167
  } = slide;
167
168
 
168
169
  if (loading) {
169
- return /*#__PURE__*/React.createElement(Text, null, "@todo loader ", num);
170
+ return /*#__PURE__*/React.createElement(View, {
171
+ style: slideStyle.slide
172
+ });
170
173
  }
171
174
 
172
175
  const {
173
176
  onClick: handleValidatePress
174
177
  } = validateButton;
175
- return /*#__PURE__*/React.createElement(View, {
176
- style: slideStyle.slide
178
+ return /*#__PURE__*/React.createElement(Animated.View, {
179
+ style: [slideStyle.slide, animatedStyle]
177
180
  }, /*#__PURE__*/React.createElement(Question, {
178
181
  questionOrigin: parentContentTitle,
179
182
  questionText: questionText,
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Button","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","justifyContent","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesContainer","flex","Question","props","answerUI","setStyle","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","backgroundColor","height","alignItems","padding","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderRadius","Slide","validateButton","slideStyle","loading","parentContentTitle","handleValidatePress","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {\n Animated,\n Easing,\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 Text from '../../atom/text/index.native';\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 {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 1000,\n toValue: 0,\n duration: 800,\n easing: Easing.bezier(0.37, 0, 0.63, 1)\n });\n\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 choicesContainer: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\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 choicesContainer: {\n flex: 1,\n width: '100%',\n justifyContent: 'center'\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = 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 return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <View style={style.choicesContainer}>\n <Answer {...answerUI} />\n </View>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 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 {slide, correctionPopinProps, validateButton, num, slideIndex = '0'} = props;\n\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\n\n const {\n loading,\n parentContentTitle,\n questionText,\n answerUI,\n showCorrectionPopin,\n animateCorrectionPopin\n } = slide;\n\n if (loading) {\n return <Text>@todo loader {num}</Text>;\n }\n\n const {onClick: handleValidatePress} = validateButton;\n\n return (\n <View style={slideStyle.slide}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\n {correctionPopinProps ? (\n <CorrectionPopin\n correctionPopinProps={correctionPopinProps}\n slideIndex={slideIndex}\n showCorrectionPopin={showCorrectionPopin}\n animateCorrectionPopin={animateCorrectionPopin}\n key=\"correction-popin\"\n />\n ) : null}\n </View>\n );\n};\n\nexport default Slide;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.native.js","names":["React","useEffect","useState","Animated","Easing","StyleSheet","useWindowDimensions","View","get","getOr","useTranslateY","Text","Answer","ReviewCorrectionPopin","useTemplateContext","Button","styles","create","correctionPopinWrapper","position","bottom","width","CorrectionPopin","correctionPopinProps","slideIndex","showCorrectionPopin","animateCorrectionPopin","translateUp","fromValue","toValue","duration","easing","bezier","start","klf","undefined","information","label","message","next","onClick","_correctionPopinProps","type","resultLabel","style","animatedStyle","createQuestionStyle","theme","questionHeading","justifyContent","questionOrigin","fontSize","lineHeight","color","colors","text","primary","marginBottom","spacing","tiny","marginTop","small","textAlign","questionText","fontWeight","questionHelp","gray","medium","choicesContainer","flex","Question","props","answerUI","setStyle","questionStyle","createSlideStyle","num","screenWidth","slideWidth","slide","left","backgroundColor","height","alignItems","padding","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","borderRadius","Slide","validateButton","slideStyle","loading","parentContentTitle","handleValidatePress","disabled"],"sources":["../../../src/organism/review-slide/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {\n Animated,\n Easing,\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 Text from '../../atom/text/index.native';\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 {PopinProps, ReviewSlideProps, SlideProps} from './prop-types';\n\nconst styles = StyleSheet.create({\n correctionPopinWrapper: {\n position: 'absolute',\n bottom: 16,\n width: '105%'\n }\n});\n\nconst CorrectionPopin = ({\n correctionPopinProps,\n slideIndex,\n showCorrectionPopin,\n animateCorrectionPopin\n}: PopinProps) => {\n const translateUp = useTranslateY({\n fromValue: 1000,\n toValue: 0,\n duration: 800,\n easing: Easing.bezier(0.37, 0, 0.63, 1)\n });\n\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 choicesContainer: ViewStyle;\n};\n\nconst createQuestionStyle = (theme: Theme): StyleSheetType =>\n StyleSheet.create({\n questionHeading: {\n justifyContent: 'space-between'\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 choicesContainer: {\n flex: 1,\n width: '100%',\n justifyContent: 'center'\n }\n });\n\ntype QuestionProps = {\n answerUI: SlideProps['answerUI'];\n questionText: SlideProps['questionText'];\n questionOrigin: SlideProps['parentContentTitle'];\n};\n\nconst Question = (props: QuestionProps) => {\n const {answerUI, questionText, questionOrigin} = 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 return (\n <>\n <View style={style.questionHeading}>\n <Text style={style.questionOrigin}>{questionOrigin}</Text>\n <Text style={style.questionText}>{questionText}</Text>\n <Text style={style.questionHelp}>{get('help', answerUI)}</Text>\n </View>\n <View style={style.choicesContainer}>\n <Answer {...answerUI} />\n </View>\n </>\n );\n};\n\ntype SlideStyle = {\n slide: ViewStyle;\n};\n\nconst createSlideStyle = (num: number, screenWidth: number): SlideStyle => {\n const slideWidth = screenWidth - 40 - num * 8;\n\n return StyleSheet.create({\n slide: {\n position: 'absolute',\n left: 20 + num * 4,\n bottom: 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\n const {width} = useWindowDimensions();\n const slideStyle = createSlideStyle(num, width);\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 const {onClick: handleValidatePress} = validateButton;\n\n return (\n <Animated.View style={[slideStyle.slide, animatedStyle]}>\n <Question\n questionOrigin={parentContentTitle}\n questionText={questionText}\n answerUI={answerUI}\n key=\"question-container\"\n />\n <Button\n disabled={validateButton.disabled}\n submitValue={validateButton.label}\n onPress={handleValidatePress}\n testID={`slide-validate-button-${slideIndex}`}\n />\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,4 +1,5 @@
1
1
  import PropTypes from 'prop-types';
2
+ import type { Animation } from '@coorpacademy/react-native-animation';
2
3
  import { ReviewCorrectionPopinProps } from '../../molecule/review-correction-popin/prop-types';
3
4
  import { AnswerProps } from '../../molecule/answer/prop-types';
4
5
  import { TemplateContextValues } from '../../template/app-review/template-context';
@@ -210,6 +211,7 @@ export declare type ReviewSlideProps = {
210
211
  onClick: () => void;
211
212
  disabled: boolean;
212
213
  };
214
+ animatedStyle?: Animation['animatedStyle'][];
213
215
  };
214
216
  export declare type Fixture = {
215
217
  props: ReviewSlideProps;
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAuC,EACrC,0BAA0B,EAC3B,MAAM,mDAAmD,CAAC;AAC3D,OAAwB,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAC,qBAAqB,EAAC,MAAM,4CAA4C,CAAC;AAEjF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAY1B,CAAC;AAEH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,oBAAY,UAAU,GAAG;IACvB,oBAAoB,EAAE,0BAA0B,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC;IAClB,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAClD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,oBAAY,OAAO,GAAG;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,aAAa,CAAC,EAAE,qBAAqB,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/organism/review-slide/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,sCAAsC,CAAC;AACpE,OAAuC,EACrC,0BAA0B,EAC3B,MAAM,mDAAmD,CAAC;AAC3D,OAAwB,EAAC,WAAW,EAAC,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAC,qBAAqB,EAAC,MAAM,4CAA4C,CAAC;AAEjF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAY1B,CAAC;AAEH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmBd,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,oBAAY,UAAU,GAAG;IACvB,oBAAoB,EAAE,0BAA0B,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,oBAAY,UAAU,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,UAAU,CAAC;IAClB,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAClD,cAAc,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,IAAI,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;CAC9C,CAAC;AAEF,oBAAY,OAAO,GAAG;IAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,aAAa,CAAC,EAAE,qBAAqB,CAAA;CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.js","names":["PropTypes","ReviewCorrectionPopinPropTypes","AnswerPropTypes","SlidePropsTypes","shape","position","number","loading","bool","loadingAriaLabel","string","animationType","isCorrect","animateCorrectionPopin","showCorrectionPopin","disableContent","parentContentTitle","questionText","answerUI","propTypes","slideIndex","slide","validateButton","label","isRequired","onClick","func","disabled","correctionPopinProps","klf","information","next","resultLabel","type"],"sources":["../../../src/organism/review-slide/prop-types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport ReviewCorrectionPopinPropTypes, {\n ReviewCorrectionPopinProps\n} from '../../molecule/review-correction-popin/prop-types';\nimport AnswerPropTypes, {AnswerProps} from '../../molecule/answer/prop-types';\nimport {TemplateContextValues} from '../../template/app-review/template-context';\n\nexport const SlidePropsTypes = PropTypes.shape({\n position: PropTypes.number,\n loading: PropTypes.bool,\n loadingAriaLabel: PropTypes.string,\n animationType: PropTypes.string, // 'unstack' | 'restack'\n isCorrect: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n showCorrectionPopin: PropTypes.bool,\n disableContent: PropTypes.bool,\n parentContentTitle: PropTypes.string,\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(AnswerPropTypes)\n});\n\nconst propTypes = {\n slideIndex: PropTypes.string,\n slide: SlidePropsTypes,\n validateButton: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool\n }),\n correctionPopinProps: PropTypes.shape({\n klf: ReviewCorrectionPopinPropTypes.klf,\n information: ReviewCorrectionPopinPropTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string // Pourquoi le onClick du next n'est pas ici !\n // updateSlidesOnNext: PropTypes.func.isRequired ???\n }),\n resultLabel: ReviewCorrectionPopinPropTypes.resultLabel,\n type: ReviewCorrectionPopinPropTypes.type\n })\n};\n\nexport default propTypes;\n\nexport type PopinProps = {\n correctionPopinProps: ReviewCorrectionPopinProps;\n slideIndex: string;\n showCorrectionPopin?: boolean;\n animateCorrectionPopin?: boolean;\n};\n\nexport type ValidateButtonProps = {\n slideIndex: string;\n validateButton: ReviewSlideProps['validateButton'];\n primarySkinColor?: string;\n};\n\nexport type SlideProps = {\n position: number;\n loading: boolean;\n loadingAriaLabel?: string;\n animationType?: 'unstack' | 'restack';\n isCorrect?: boolean;\n animateCorrectionPopin?: boolean;\n showCorrectionPopin?: boolean;\n parentContentTitle?: string;\n questionText?: string;\n answerUI?: AnswerProps;\n};\n\nexport type ReviewSlideProps = {\n slideIndex: string;\n num: number;\n slide: SlideProps;\n correctionPopinProps?: ReviewCorrectionPopinProps;\n validateButton: {\n label: string;\n onClick: () => void;\n disabled: boolean;\n };\n};\n\nexport type Fixture = {props: ReviewSlideProps; mobileContext?: TemplateContextValues};\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AACA,OAAOC,8BAAP,MAEO,mDAFP;AAGA,OAAOC,eAAP,MAA2C,kCAA3C;AAGA,OAAO,MAAMC,eAAe,GAAGH,SAAS,CAACI,KAAV,CAAgB;EAC7CC,QAAQ,EAAEL,SAAS,CAACM,MADyB;EAE7CC,OAAO,EAAEP,SAAS,CAACQ,IAF0B;EAG7CC,gBAAgB,EAAET,SAAS,CAACU,MAHiB;EAI7CC,aAAa,EAAEX,SAAS,CAACU,MAJoB;EAIZ;EACjCE,SAAS,EAAEZ,SAAS,CAACQ,IALwB;EAM7CK,sBAAsB,EAAEb,SAAS,CAACQ,IANW;EAO7CM,mBAAmB,EAAEd,SAAS,CAACQ,IAPc;EAQ7CO,cAAc,EAAEf,SAAS,CAACQ,IARmB;EAS7CQ,kBAAkB,EAAEhB,SAAS,CAACU,MATe;EAU7CO,YAAY,EAAEjB,SAAS,CAACU,MAVqB;EAW7CQ,QAAQ,EAAElB,SAAS,CAACI,KAAV,CAAgBF,eAAhB;AAXmC,CAAhB,CAAxB;AAcP,MAAMiB,SAAS,GAAG;EAChBC,UAAU,EAAEpB,SAAS,CAACU,MADN;EAEhBW,KAAK,EAAElB,eAFS;EAGhBmB,cAAc,EAAEtB,SAAS,CAACI,KAAV,CAAgB;IAC9BmB,KAAK,EAAEvB,SAAS,CAACU,MAAV,CAAiBc,UADM;IAE9BC,OAAO,EAAEzB,SAAS,CAAC0B,IAAV,CAAeF,UAFM;IAG9BG,QAAQ,EAAE3B,SAAS,CAACQ;EAHU,CAAhB,CAHA;EAQhBoB,oBAAoB,EAAE5B,SAAS,CAACI,KAAV,CAAgB;IACpCyB,GAAG,EAAE5B,8BAA8B,CAAC4B,GADA;IAEpCC,WAAW,EAAE7B,8BAA8B,CAAC6B,WAFR;IAGpCC,IAAI,EAAE/B,SAAS,CAACI,KAAV,CAAgB;MACpBmB,KAAK,EAAEvB,SAAS,CAACU,MADG;MAEpB,cAAcV,SAAS,CAACU,MAFJ,CAEW;MAC/B;;IAHoB,CAAhB,CAH8B;IAQpCsB,WAAW,EAAE/B,8BAA8B,CAAC+B,WARR;IASpCC,IAAI,EAAEhC,8BAA8B,CAACgC;EATD,CAAhB;AARN,CAAlB;AAqBA,eAAed,SAAf"}
1
+ {"version":3,"file":"prop-types.js","names":["PropTypes","ReviewCorrectionPopinPropTypes","AnswerPropTypes","SlidePropsTypes","shape","position","number","loading","bool","loadingAriaLabel","string","animationType","isCorrect","animateCorrectionPopin","showCorrectionPopin","disableContent","parentContentTitle","questionText","answerUI","propTypes","slideIndex","slide","validateButton","label","isRequired","onClick","func","disabled","correctionPopinProps","klf","information","next","resultLabel","type"],"sources":["../../../src/organism/review-slide/prop-types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport type {Animation} from '@coorpacademy/react-native-animation';\nimport ReviewCorrectionPopinPropTypes, {\n ReviewCorrectionPopinProps\n} from '../../molecule/review-correction-popin/prop-types';\nimport AnswerPropTypes, {AnswerProps} from '../../molecule/answer/prop-types';\nimport {TemplateContextValues} from '../../template/app-review/template-context';\n\nexport const SlidePropsTypes = PropTypes.shape({\n position: PropTypes.number,\n loading: PropTypes.bool,\n loadingAriaLabel: PropTypes.string,\n animationType: PropTypes.string, // 'unstack' | 'restack'\n isCorrect: PropTypes.bool,\n animateCorrectionPopin: PropTypes.bool,\n showCorrectionPopin: PropTypes.bool,\n disableContent: PropTypes.bool,\n parentContentTitle: PropTypes.string,\n questionText: PropTypes.string,\n answerUI: PropTypes.shape(AnswerPropTypes)\n});\n\nconst propTypes = {\n slideIndex: PropTypes.string,\n slide: SlidePropsTypes,\n validateButton: PropTypes.shape({\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n disabled: PropTypes.bool\n }),\n correctionPopinProps: PropTypes.shape({\n klf: ReviewCorrectionPopinPropTypes.klf,\n information: ReviewCorrectionPopinPropTypes.information,\n next: PropTypes.shape({\n label: PropTypes.string,\n 'aria-label': PropTypes.string // Pourquoi le onClick du next n'est pas ici !\n // updateSlidesOnNext: PropTypes.func.isRequired ???\n }),\n resultLabel: ReviewCorrectionPopinPropTypes.resultLabel,\n type: ReviewCorrectionPopinPropTypes.type\n })\n};\n\nexport default propTypes;\n\nexport type PopinProps = {\n correctionPopinProps: ReviewCorrectionPopinProps;\n slideIndex: string;\n showCorrectionPopin?: boolean;\n animateCorrectionPopin?: boolean;\n};\n\nexport type ValidateButtonProps = {\n slideIndex: string;\n validateButton: ReviewSlideProps['validateButton'];\n primarySkinColor?: string;\n};\n\nexport type SlideProps = {\n position: number;\n loading: boolean;\n loadingAriaLabel?: string;\n animationType?: 'unstack' | 'restack';\n isCorrect?: boolean;\n animateCorrectionPopin?: boolean;\n showCorrectionPopin?: boolean;\n parentContentTitle?: string;\n questionText?: string;\n answerUI?: AnswerProps;\n};\n\nexport type ReviewSlideProps = {\n slideIndex: string;\n num: number;\n slide: SlideProps;\n correctionPopinProps?: ReviewCorrectionPopinProps;\n validateButton: {\n label: string;\n onClick: () => void;\n disabled: boolean;\n };\n animatedStyle?: Animation['animatedStyle'][];\n};\n\nexport type Fixture = {props: ReviewSlideProps; mobileContext?: TemplateContextValues};\n"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,YAAtB;AAEA,OAAOC,8BAAP,MAEO,mDAFP;AAGA,OAAOC,eAAP,MAA2C,kCAA3C;AAGA,OAAO,MAAMC,eAAe,GAAGH,SAAS,CAACI,KAAV,CAAgB;EAC7CC,QAAQ,EAAEL,SAAS,CAACM,MADyB;EAE7CC,OAAO,EAAEP,SAAS,CAACQ,IAF0B;EAG7CC,gBAAgB,EAAET,SAAS,CAACU,MAHiB;EAI7CC,aAAa,EAAEX,SAAS,CAACU,MAJoB;EAIZ;EACjCE,SAAS,EAAEZ,SAAS,CAACQ,IALwB;EAM7CK,sBAAsB,EAAEb,SAAS,CAACQ,IANW;EAO7CM,mBAAmB,EAAEd,SAAS,CAACQ,IAPc;EAQ7CO,cAAc,EAAEf,SAAS,CAACQ,IARmB;EAS7CQ,kBAAkB,EAAEhB,SAAS,CAACU,MATe;EAU7CO,YAAY,EAAEjB,SAAS,CAACU,MAVqB;EAW7CQ,QAAQ,EAAElB,SAAS,CAACI,KAAV,CAAgBF,eAAhB;AAXmC,CAAhB,CAAxB;AAcP,MAAMiB,SAAS,GAAG;EAChBC,UAAU,EAAEpB,SAAS,CAACU,MADN;EAEhBW,KAAK,EAAElB,eAFS;EAGhBmB,cAAc,EAAEtB,SAAS,CAACI,KAAV,CAAgB;IAC9BmB,KAAK,EAAEvB,SAAS,CAACU,MAAV,CAAiBc,UADM;IAE9BC,OAAO,EAAEzB,SAAS,CAAC0B,IAAV,CAAeF,UAFM;IAG9BG,QAAQ,EAAE3B,SAAS,CAACQ;EAHU,CAAhB,CAHA;EAQhBoB,oBAAoB,EAAE5B,SAAS,CAACI,KAAV,CAAgB;IACpCyB,GAAG,EAAE5B,8BAA8B,CAAC4B,GADA;IAEpCC,WAAW,EAAE7B,8BAA8B,CAAC6B,WAFR;IAGpCC,IAAI,EAAE/B,SAAS,CAACI,KAAV,CAAgB;MACpBmB,KAAK,EAAEvB,SAAS,CAACU,MADG;MAEpB,cAAcV,SAAS,CAACU,MAFJ,CAEW;MAC/B;;IAHoB,CAAhB,CAH8B;IAQpCsB,WAAW,EAAE/B,8BAA8B,CAAC+B,WARR;IASpCC,IAAI,EAAEhC,8BAA8B,CAACgC;EATD,CAAhB;AARN,CAAlB;AAqBA,eAAed,SAAf"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { ReviewStackProps } from './prop-types';
2
+ import type { ReviewStackProps } from './prop-types';
3
3
  export declare const TOTAL_SLIDES_STACK = 5;
4
4
  declare const StackedSlides: (props: ReviewStackProps) => JSX.Element;
5
5
  export default StackedSlides;
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAUpC,QAAA,MAAM,aAAa,UAAW,gBAAgB,gBAiC7C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/organism/review-stacked-slides/index.native.tsx"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAEnD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAyBpC,QAAA,MAAM,aAAa,UAAW,gBAAgB,gBA0G7C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import React, { useEffect } from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import { Animated, StyleSheet, useWindowDimensions } from 'react-native';
3
3
  import keys from 'lodash/fp/keys';
4
4
  import { useTranslateY } from '@coorpacademy/react-native-animation';
@@ -12,26 +12,86 @@ const style = StyleSheet.create({
12
12
  }
13
13
  });
14
14
 
15
+ const FakeSlide = ({
16
+ position,
17
+ validateButton
18
+ }) => /*#__PURE__*/React.createElement(Slide, {
19
+ num: position,
20
+ slide: {
21
+ loading: true,
22
+ position
23
+ },
24
+ slideIndex: `${position}`,
25
+ validateButton: validateButton
26
+ });
27
+ /*
28
+ - slides are ordered to be played from left to right: [0,1,2,3]
29
+ - slides are piled on the view, so we need to reverse the order:
30
+ -> it's like our eye is looking from the right [3,2,1,0] <-- oO
31
+ */
32
+
33
+
15
34
  const StackedSlides = props => {
16
35
  const {
17
36
  height: windowHeight
18
37
  } = useWindowDimensions();
19
38
  const {
39
+ endReview,
20
40
  slides,
21
41
  validateButton,
22
42
  correctionPopinProps
23
43
  } = props;
44
+ const [unstacked, setUnstacked] = useState([]);
45
+ const [restacked, setRestacked] = useState();
24
46
  const hideSlides = useTranslateY({
25
47
  fromValue: 0,
26
48
  toValue: windowHeight,
27
49
  duration: 800
28
50
  });
29
- useEffect(() => hideSlides.start(), []);
30
- const indexes = keys(slides).reverse();
31
- const stackedSlides = indexes.map(slideIndex => {
51
+ const translateDown = useTranslateY({
52
+ fromValue: 0,
53
+ toValue: windowHeight - 100,
54
+ duration: 1000
55
+ });
56
+ useEffect(() => {
57
+ if (endReview) {
58
+ hideSlides.start();
59
+ }
60
+ }, [endReview, hideSlides]);
61
+ const restackingSlide = keys(slides).find(k => slides[k].animationType === 'restack');
62
+ const unstackingSlide = keys(slides).find(k => slides[k].animationType === 'unstack');
63
+ const remainingKeys = keys(slides).filter(k => slides[k].position >= 0 && !slides[k].animationType);
64
+ const orderedKeys = remainingKeys.sort((k1, k2) => slides[k2].position > slides[k1].position ? 1 : -1);
65
+ const animatedSlide = restackingSlide || unstackingSlide;
66
+ useEffect(() => {
67
+ if (restacked && orderedKeys.includes(restacked)) {
68
+ setRestacked(null);
69
+ } // this effect is required only when the list orderedKeys changes
70
+ // eslint-disable-next-line react-hooks/exhaustive-deps
71
+
72
+ }, [orderedKeys.toString()]);
73
+ useEffect(() => {
74
+ const unstacking = unstackingSlide && !unstacked.includes(unstackingSlide);
75
+
76
+ if (unstacking) {
77
+ translateDown.start(() => {
78
+ setUnstacked([...unstacked, unstackingSlide]);
79
+ });
80
+ }
81
+ }, [unstackingSlide, unstacked, setUnstacked, translateDown]);
82
+ useEffect(() => {
83
+ const restacking = restackingSlide && restacked !== restackingSlide;
84
+
85
+ if (restacking) {
86
+ translateDown.start(() => {
87
+ setRestacked(restackingSlide);
88
+ });
89
+ }
90
+ }, [restackingSlide, restacked, setRestacked, translateDown]);
91
+ const stackedSlides = orderedKeys.map((slideIndex, index) => {
32
92
  const slide = slides[slideIndex];
33
93
  return /*#__PURE__*/React.createElement(Slide, {
34
- num: Number.parseInt(slideIndex),
94
+ num: orderedKeys.length - index,
35
95
  slideIndex,
36
96
  slide,
37
97
  validateButton,
@@ -39,9 +99,25 @@ const StackedSlides = props => {
39
99
  key: slideIndex
40
100
  });
41
101
  });
102
+
103
+ if (animatedSlide) {
104
+ stackedSlides.push( /*#__PURE__*/React.createElement(Slide, {
105
+ num: 0,
106
+ slideIndex: animatedSlide,
107
+ slide: slides[animatedSlide],
108
+ validateButton,
109
+ correctionPopinProps,
110
+ animatedStyle: [translateDown.animatedStyle],
111
+ key: animatedSlide
112
+ }));
113
+ }
114
+
42
115
  return /*#__PURE__*/React.createElement(Animated.View, {
43
116
  style: [style.slides, hideSlides.animatedStyle]
44
- }, stackedSlides);
117
+ }, restacked ? /*#__PURE__*/React.createElement(FakeSlide, {
118
+ position: orderedKeys.length + 1,
119
+ validateButton: validateButton
120
+ }) : null, stackedSlides);
45
121
  };
46
122
 
47
123
  export default StackedSlides;