@coorpacademy/components 10.17.3 → 10.19.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/atom/checkbox-with-title/index.js +4 -3
- package/es/atom/checkbox-with-title/index.js.map +1 -1
- package/es/atom/lottie-wrapper/index.js +2 -2
- package/es/atom/lottie-wrapper/index.js.map +1 -1
- package/es/molecule/brand-create-form/index.js +1 -0
- package/es/molecule/brand-create-form/index.js.map +1 -1
- package/es/molecule/review-card-congrats/index.js +99 -0
- package/es/molecule/review-card-congrats/index.js.map +1 -0
- package/es/molecule/review-card-congrats/style.css +139 -0
- package/es/molecule/review-card-congrats/test/card-congrats.js +47 -0
- package/es/molecule/review-card-congrats/test/card-congrats.js.map +1 -0
- package/es/molecule/review-card-congrats/test/fixtures/rank.js +22 -0
- package/es/molecule/review-card-congrats/test/fixtures/rank.js.map +1 -0
- package/es/molecule/review-card-congrats/test/fixtures/star.js +21 -0
- package/es/molecule/review-card-congrats/test/fixtures/star.js.map +1 -0
- package/es/molecule/review-card-congrats/test/fixtures.js +15 -0
- package/es/molecule/review-card-congrats/test/fixtures.js.map +1 -0
- package/es/organism/review-congrats/index.js +72 -0
- package/es/organism/review-congrats/index.js.map +1 -0
- package/es/organism/review-congrats/style.css +225 -0
- package/es/organism/review-congrats/test/fixtures/default.js +25 -0
- package/es/organism/review-congrats/test/fixtures/default.js.map +1 -0
- package/es/organism/review-congrats/test/fixtures.js +13 -0
- package/es/organism/review-congrats/test/fixtures.js.map +1 -0
- package/es/organism/review-congrats/test/review-congrats.js +37 -0
- package/es/organism/review-congrats/test/review-congrats.js.map +1 -0
- package/es/organism/review-header/index.js +7 -3
- package/es/organism/review-header/index.js.map +1 -1
- package/es/organism/review-header/style.css +13 -0
- package/es/organism/review-header/test/fixtures/steps-animation.js +11 -0
- package/es/organism/review-header/test/fixtures/steps-animation.js.map +1 -0
- package/es/organism/review-header/test/fixtures.js +2 -0
- package/es/organism/review-header/test/fixtures.js.map +1 -1
- package/es/variables/colors.css +1 -0
- package/lib/atom/checkbox-with-title/index.js +4 -3
- package/lib/atom/checkbox-with-title/index.js.map +1 -1
- package/lib/atom/lottie-wrapper/index.js +2 -2
- package/lib/atom/lottie-wrapper/index.js.map +1 -1
- package/lib/molecule/brand-create-form/index.js +1 -0
- package/lib/molecule/brand-create-form/index.js.map +1 -1
- package/lib/molecule/review-card-congrats/index.js +124 -0
- package/lib/molecule/review-card-congrats/index.js.map +1 -0
- package/lib/molecule/review-card-congrats/style.css +139 -0
- package/lib/molecule/review-card-congrats/test/card-congrats.js +63 -0
- package/lib/molecule/review-card-congrats/test/card-congrats.js.map +1 -0
- package/lib/molecule/review-card-congrats/test/fixtures/rank.js +32 -0
- package/lib/molecule/review-card-congrats/test/fixtures/rank.js.map +1 -0
- package/lib/molecule/review-card-congrats/test/fixtures/star.js +31 -0
- package/lib/molecule/review-card-congrats/test/fixtures/star.js.map +1 -0
- package/lib/molecule/review-card-congrats/test/fixtures.js +25 -0
- package/lib/molecule/review-card-congrats/test/fixtures.js.map +1 -0
- package/lib/organism/review-congrats/index.js +91 -0
- package/lib/organism/review-congrats/index.js.map +1 -0
- package/lib/organism/review-congrats/style.css +225 -0
- package/lib/organism/review-congrats/test/fixtures/default.js +36 -0
- package/lib/organism/review-congrats/test/fixtures/default.js.map +1 -0
- package/lib/organism/review-congrats/test/fixtures.js +22 -0
- package/lib/organism/review-congrats/test/fixtures.js.map +1 -0
- package/lib/organism/review-congrats/test/review-congrats.js +53 -0
- package/lib/organism/review-congrats/test/review-congrats.js.map +1 -0
- package/lib/organism/review-header/index.js +8 -3
- package/lib/organism/review-header/index.js.map +1 -1
- package/lib/organism/review-header/style.css +13 -0
- package/lib/organism/review-header/test/fixtures/steps-animation.js +21 -0
- package/lib/organism/review-header/test/fixtures/steps-animation.js.map +1 -0
- package/lib/organism/review-header/test/fixtures.js +3 -0
- package/lib/organism/review-header/test/fixtures.js.map +1 -1
- package/lib/variables/colors.css +1 -0
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","style","modifiedWrapper","wrapper","fieldClass","default","disabled","onChange","handleChange","e","target","value","actionView","wait","loading","header","content","placeholder","label","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","func","bool"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,eAAe,GAAG,CAACC,KAAD,EAAQC,OAAR,KAAoB;AAC1C,QAAM;AAACC,IAAAA,KAAD;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA,WAAlB;AAA+BC,IAAAA,KAA/B;AAAsCC,IAAAA,QAAtC;AAAgDC,IAAAA,WAAhD;AAA6DC,IAAAA,SAA7D;AAAwEC,IAAAA;AAAxE,MAAsFT,KAA5F;AACA,QAAM;AAACU,IAAAA;AAAD,MAAcT,OAApB;AACA,QAAMU,WAAW,GAAGD,SAAS,CAAC,eAAD,CAA7B;AAEA,QAAME,YAAY,GAChBH,UAAU,IAAID,SAAd,IAA2BH,KAAK,CAACQ,KAAjC,GAAyCC,eAAMC,eAA/C,GAAiED,eAAME,OADzE;AAEA,QAAMC,UAAU,GAAGZ,KAAK,CAACQ,KAAN,GAAcC,eAAMD,KAApB,GAA4BC,eAAMI,OAArD;AACA,QAAMC,QAAQ,GAAGX,SAAS,IAAI,CAACC,UAA/B;AACA,QAAM;AAACW,IAAAA;AAAD,MAAaf,KAAnB;AACA,QAAMgB,YAAY,GAAG,oBAAQ,MAAMC,CAAC,IAAIF,QAAQ,CAACE,CAAC,CAACC,MAAF,CAASC,KAAV,CAA3B,EAA6C,CAACJ,QAAD,CAA7C,CAArB;AAEA,QAAMK,UAAU,GAAGjB,SAAS,gBAC1B,uDACE;AAAK,IAAA,SAAS,EAAEM,eAAMY;AAAtB,KAA6Bf,WAA7B,CADF,eAEE;AAAK,IAAA,SAAS,EAAEG,eAAMa;AAAtB,kBACE,6BAAC,eAAD,OADF,CAFF,CAD0B,gBAQ1B,uDACE,6BAAC,eAAD;AACE,iBAAU,4BADZ;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,QAAQ,EAAER,QAHZ;AAIE,IAAA,WAAW,EAAEZ;AAJf,IADF,CARF;AAkBA,sBACE;AAAK,IAAA,SAAS,EAAEK;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAEE,eAAMc;AAAtB,kBACE,yCAAK1B,KAAL,CADF,CADF,eAIE;AAAM,IAAA,SAAS,EAAEY,eAAMe,OAAvB;AAAgC,IAAA,QAAQ,EAAEvB;AAA1C,kBACE,yCAAKH,QAAL,CADF,eAEE;AAAK,IAAA,SAAS,EAAEW,eAAMV;AAAtB,KAAoCA,WAApC,CAFF,eAGE;AAAK,IAAA,SAAS,EAAEa;AAAhB,kBACE,yDACE;AACE,IAAA,IAAI,EAAC,MADP;AAEE,
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/brand-create-form/index.js"],"names":["BrandCreateForm","props","context","title","subtitle","description","field","onSubmit","submitValue","isPending","isModified","translate","waitMessage","wrapperClass","error","style","modifiedWrapper","wrapper","fieldClass","default","disabled","onChange","handleChange","e","target","value","actionView","wait","loading","header","content","placeholder","label","contextTypes","Provider","childContextTypes","propTypes","PropTypes","string","isRequired","shape","func","bool"],"mappings":"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","sourcesContent":["import React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport Button from '../../atom/button';\nimport Loader from '../../atom/loader';\nimport Provider from '../../atom/provider';\nimport style from './style.css';\n\nconst BrandCreateForm = (props, context) => {\n const {title, subtitle, description, field, onSubmit, submitValue, isPending, isModified} = props;\n const {translate} = context;\n const waitMessage = translate('Wait_creation');\n\n const wrapperClass =\n isModified || isPending || field.error ? style.modifiedWrapper : style.wrapper;\n const fieldClass = field.error ? style.error : style.default;\n const disabled = isPending || !isModified;\n const {onChange} = field;\n const handleChange = useMemo(() => e => onChange(e.target.value), [onChange]);\n\n const actionView = isPending ? (\n <div>\n <div className={style.wait}>{waitMessage}</div>\n <div className={style.loading}>\n <Loader />\n </div>\n </div>\n ) : (\n <div>\n <Button\n data-name=\"brand_create_submit_button\"\n type=\"submit\"\n disabled={disabled}\n submitValue={submitValue}\n />\n </div>\n );\n\n return (\n <div className={wrapperClass}>\n <div className={style.header}>\n <h1>{title}</h1>\n </div>\n <form className={style.content} onSubmit={onSubmit}>\n <h2>{subtitle}</h2>\n <div className={style.description}>{description}</div>\n <div className={fieldClass}>\n <label>\n <input\n type=\"text\"\n maxLength=\"40\"\n data-name=\"brand_create_text_input\"\n placeholder={field.placeholder}\n defaultValue={field.value}\n onInput={handleChange}\n />\n {field.label}\n </label>\n </div>\n {actionView}\n </form>\n </div>\n );\n};\n\nBrandCreateForm.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nBrandCreateForm.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n field: PropTypes.shape({\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n error: PropTypes.string,\n value: PropTypes.string\n }).isRequired,\n onSubmit: PropTypes.func.isRequired,\n submitValue: PropTypes.string.isRequired,\n isPending: PropTypes.bool,\n isModified: PropTypes.bool\n};\n\nexport default BrandCreateForm;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = exports.setAnimations = void 0;
|
|
5
|
+
|
|
6
|
+
var _multiply2 = _interopRequireDefault(require("lodash/fp/multiply"));
|
|
7
|
+
|
|
8
|
+
var _parseInt3 = _interopRequireDefault(require("lodash/fp/parseInt"));
|
|
9
|
+
|
|
10
|
+
var _round2 = _interopRequireDefault(require("lodash/fp/round"));
|
|
11
|
+
|
|
12
|
+
var _pipe2 = _interopRequireDefault(require("lodash/fp/pipe"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
+
|
|
18
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
+
|
|
20
|
+
var _novaIcons = require("@coorpacademy/nova-icons");
|
|
21
|
+
|
|
22
|
+
var _lottieWrapper = _interopRequireDefault(require("../../atom/lottie-wrapper"));
|
|
23
|
+
|
|
24
|
+
var _animation = _interopRequireWildcard(require("../../hoc/animation"));
|
|
25
|
+
|
|
26
|
+
var _animationScheduler = _interopRequireDefault(require("../../hoc/animation-scheduler"));
|
|
27
|
+
|
|
28
|
+
var _style = _interopRequireDefault(require("./style.css"));
|
|
29
|
+
|
|
30
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
31
|
+
|
|
32
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
+
|
|
36
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
37
|
+
|
|
38
|
+
const setAnimations = (setIsAnimationVisible, setIsAnimated) => () => {
|
|
39
|
+
setIsAnimationVisible('play');
|
|
40
|
+
setIsAnimated(true);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.setAnimations = setAnimations;
|
|
44
|
+
|
|
45
|
+
const ReviewCardCongrats = props => {
|
|
46
|
+
const {
|
|
47
|
+
'aria-label': ariaLabel,
|
|
48
|
+
'data-name': dataName,
|
|
49
|
+
animationLottie,
|
|
50
|
+
cardType,
|
|
51
|
+
iconAriaLabel,
|
|
52
|
+
className,
|
|
53
|
+
reviewCardTitle,
|
|
54
|
+
reviewCardValue,
|
|
55
|
+
rankSuffix,
|
|
56
|
+
timerAnimation
|
|
57
|
+
} = props;
|
|
58
|
+
const [isAnimationVisible, setIsAnimationVisible] = (0, _react.useState)('loading');
|
|
59
|
+
const [isAnimated, setIsAnimated] = (0, _react.useState)(false);
|
|
60
|
+
(0, _react.useEffect)(() => {
|
|
61
|
+
let timer; // istanbul ignore else
|
|
62
|
+
|
|
63
|
+
if (!isAnimationVisible || !isAnimated) {
|
|
64
|
+
timer = setTimeout(setAnimations(setIsAnimationVisible, setIsAnimated), timerAnimation);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return () => timer && clearTimeout(timer);
|
|
68
|
+
}, [timerAnimation]);
|
|
69
|
+
const wrapperClassName = (0, _classnames.default)(className, _style.default.cardContainer, cardType === 'card-star' ? _style.default.cardStar : _style.default.cardRank);
|
|
70
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
|
+
className: wrapperClassName,
|
|
72
|
+
"aria-label": ariaLabel,
|
|
73
|
+
"data-name": dataName
|
|
74
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
75
|
+
className: _style.default.mainIcon
|
|
76
|
+
}, /*#__PURE__*/_react.default.createElement(_lottieWrapper.default, _extends({}, animationLottie, {
|
|
77
|
+
loop: false,
|
|
78
|
+
animationControl: isAnimationVisible,
|
|
79
|
+
autoplay: false,
|
|
80
|
+
"data-name": "lottie-wrapper",
|
|
81
|
+
className: _style.default.wrapperLottie,
|
|
82
|
+
backupImageClassName: _style.default.ie11Backup
|
|
83
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
84
|
+
className: _style.default.title
|
|
85
|
+
}, reviewCardTitle), /*#__PURE__*/_react.default.createElement("div", {
|
|
86
|
+
className: cardType === 'card-star' ? _style.default.textContainerStar : _style.default.textContainerRank
|
|
87
|
+
}, cardType === 'card-rank' ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidVoteRewardsRewardsBadge5, {
|
|
88
|
+
className: _style.default.iconRank,
|
|
89
|
+
width: 40,
|
|
90
|
+
height: 40,
|
|
91
|
+
"aria-label": iconAriaLabel
|
|
92
|
+
}) : null, /*#__PURE__*/_react.default.createElement(_animationScheduler.default, {
|
|
93
|
+
animated: isAnimated
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("span", {
|
|
95
|
+
className: cardType === 'card-star' ? _style.default.textStar : _style.default.textRank
|
|
96
|
+
}, /*#__PURE__*/_react.default.createElement(_animation.default, {
|
|
97
|
+
name: "counter",
|
|
98
|
+
bezier: _animation.EASE_OUT_CUBIC,
|
|
99
|
+
duration: 2000
|
|
100
|
+
}, progress => (0, _pipe2.default)((0, _parseInt3.default)(10), (0, _multiply2.default)(progress), _round2.default)(reviewCardValue))))), cardType === 'card-star' ? /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyStar, {
|
|
101
|
+
className: _style.default.iconStar,
|
|
102
|
+
width: 53,
|
|
103
|
+
height: 53,
|
|
104
|
+
"aria-label": iconAriaLabel
|
|
105
|
+
}) : /*#__PURE__*/_react.default.createElement("div", {
|
|
106
|
+
className: _style.default.rankSuffix
|
|
107
|
+
}, rankSuffix)));
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
ReviewCardCongrats.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
111
|
+
'aria-label': _propTypes.default.string,
|
|
112
|
+
'data-name': _propTypes.default.string,
|
|
113
|
+
animationLottie: _propTypes.default.shape(_lottieWrapper.default.propTypes),
|
|
114
|
+
cardType: _propTypes.default.string,
|
|
115
|
+
iconAriaLabel: _propTypes.default.string,
|
|
116
|
+
className: _propTypes.default.string,
|
|
117
|
+
reviewCardTitle: _propTypes.default.string,
|
|
118
|
+
reviewCardValue: _propTypes.default.string,
|
|
119
|
+
rankSuffix: _propTypes.default.string,
|
|
120
|
+
timerAnimation: _propTypes.default.number
|
|
121
|
+
} : {};
|
|
122
|
+
var _default = ReviewCardCongrats;
|
|
123
|
+
exports.default = _default;
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/molecule/review-card-congrats/index.js"],"names":["setAnimations","setIsAnimationVisible","setIsAnimated","ReviewCardCongrats","props","ariaLabel","dataName","animationLottie","cardType","iconAriaLabel","className","reviewCardTitle","reviewCardValue","rankSuffix","timerAnimation","isAnimationVisible","isAnimated","timer","setTimeout","clearTimeout","wrapperClassName","style","cardContainer","cardStar","cardRank","mainIcon","wrapperLottie","ie11Backup","title","textContainerStar","textContainerRank","iconRank","textStar","textRank","EASE_OUT_CUBIC","progress","iconStar","propTypes","PropTypes","string","shape","AtomLottieWrapper","number"],"mappings":"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","sourcesContent":["import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {pipe, round, parseInt as _parseInt, multiply} from 'lodash/fp';\nimport {\n NovaCompositionCoorpacademyStar as StarIcon,\n NovaSolidVoteRewardsRewardsBadge5 as RankIcon\n} from '@coorpacademy/nova-icons';\nimport AtomLottieWrapper from '../../atom/lottie-wrapper';\nimport Animation, {EASE_OUT_CUBIC} from '../../hoc/animation';\nimport AnimationScheduler from '../../hoc/animation-scheduler';\nimport style from './style.css';\n\nexport const setAnimations = (setIsAnimationVisible, setIsAnimated) => () => {\n setIsAnimationVisible('play');\n setIsAnimated(true);\n};\n\nconst ReviewCardCongrats = props => {\n const {\n 'aria-label': ariaLabel,\n 'data-name': dataName,\n animationLottie,\n cardType,\n iconAriaLabel,\n className,\n reviewCardTitle,\n reviewCardValue,\n rankSuffix,\n timerAnimation\n } = props;\n\n const [isAnimationVisible, setIsAnimationVisible] = useState('loading');\n const [isAnimated, setIsAnimated] = useState(false);\n\n useEffect(() => {\n let timer;\n // istanbul ignore else\n if (!isAnimationVisible || !isAnimated) {\n timer = setTimeout(setAnimations(setIsAnimationVisible, setIsAnimated), timerAnimation);\n }\n return () => timer && clearTimeout(timer);\n }, [timerAnimation]);\n\n const wrapperClassName = classnames(\n className,\n style.cardContainer,\n cardType === 'card-star' ? style.cardStar : style.cardRank\n );\n\n return (\n <div className={wrapperClassName} aria-label={ariaLabel} data-name={dataName}>\n <div className={style.mainIcon}>\n <AtomLottieWrapper\n {...animationLottie}\n loop={false}\n animationControl={isAnimationVisible}\n autoplay={false}\n data-name=\"lottie-wrapper\"\n className={style.wrapperLottie}\n backupImageClassName={style.ie11Backup}\n />\n </div>\n <div className={style.title}>{reviewCardTitle}</div>\n <div className={cardType === 'card-star' ? style.textContainerStar : style.textContainerRank}>\n {cardType === 'card-rank' ? (\n <RankIcon className={style.iconRank} width={40} height={40} aria-label={iconAriaLabel} />\n ) : null}\n <AnimationScheduler animated={isAnimated}>\n <div>\n <span className={cardType === 'card-star' ? style.textStar : style.textRank}>\n <Animation name=\"counter\" bezier={EASE_OUT_CUBIC} duration={2000}>\n {progress => pipe(_parseInt(10), multiply(progress), round)(reviewCardValue)}\n </Animation>\n </span>\n </div>\n </AnimationScheduler>\n {cardType === 'card-star' ? (\n <StarIcon className={style.iconStar} width={53} height={53} aria-label={iconAriaLabel} />\n ) : (\n <div className={style.rankSuffix}>{rankSuffix}</div>\n )}\n </div>\n </div>\n );\n};\n\nReviewCardCongrats.propTypes = {\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n animationLottie: PropTypes.shape(AtomLottieWrapper.propTypes),\n cardType: PropTypes.string,\n iconAriaLabel: PropTypes.string,\n className: PropTypes.string,\n reviewCardTitle: PropTypes.string,\n reviewCardValue: PropTypes.string,\n rankSuffix: PropTypes.string,\n timerAnimation: PropTypes.number\n};\n\nexport default ReviewCardCongrats;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
@value breakpoints: "../../variables/breakpoints.css";
|
|
2
|
+
@value mobile from breakpoints;
|
|
3
|
+
@value colors: "../../variables/colors.css";
|
|
4
|
+
@value cm_blue_900 from colors;
|
|
5
|
+
@value cm_positive_100 from colors;
|
|
6
|
+
@value cm_yellow_secondary_200 from colors;
|
|
7
|
+
|
|
8
|
+
@keyframes fadeIn {
|
|
9
|
+
0% {
|
|
10
|
+
opacity: 0;
|
|
11
|
+
}
|
|
12
|
+
100% {
|
|
13
|
+
opacity: 1;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.textBase {
|
|
18
|
+
font-family: 'Gilroy';
|
|
19
|
+
font-style: normal;
|
|
20
|
+
user-select: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.textContainerBase {
|
|
24
|
+
display: flex;
|
|
25
|
+
align-items: center;
|
|
26
|
+
margin-bottom: 40px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.textIconBase {
|
|
30
|
+
composes: textBase;
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
font-size: 64px;
|
|
33
|
+
line-height: 77px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.cardContainer {
|
|
37
|
+
animation: fadeIn 2s ease-in-out forwards;
|
|
38
|
+
backdrop-filter: blur(36px);
|
|
39
|
+
border-radius: 24px;
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
width: 280px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.cardStar {
|
|
47
|
+
box-shadow: 0px 0px 45px 6px rgba(255, 206, 10, 0.1);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.cardRank {
|
|
51
|
+
box-shadow: 0px 0px 45px 6px rgba(24, 187, 152, 0.1);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.mainIcon {
|
|
55
|
+
display: flex;
|
|
56
|
+
justify-content: center;
|
|
57
|
+
margin: 20px 0px 12px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.wrapperLottie {
|
|
61
|
+
width: 165px;
|
|
62
|
+
height: 165px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ie11Backup {
|
|
66
|
+
composes: wrapperLottie;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.title {
|
|
70
|
+
composes: textBase;
|
|
71
|
+
color: cm_blue_900;
|
|
72
|
+
font-weight: 400;
|
|
73
|
+
font-size: 28px;
|
|
74
|
+
line-height: 36px;
|
|
75
|
+
text-align: center;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.textContainerStar {
|
|
79
|
+
composes: textContainerBase;
|
|
80
|
+
justify-content: flex-end;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.textContainerRank {
|
|
84
|
+
composes: textContainerBase;
|
|
85
|
+
justify-content: space-between;
|
|
86
|
+
padding: 0 45px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.textStar {
|
|
90
|
+
composes: textIconBase;
|
|
91
|
+
color: cm_yellow_secondary_200;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.textRank {
|
|
95
|
+
composes: textIconBase;
|
|
96
|
+
color: cm_blue_900;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.iconStar {
|
|
100
|
+
color: cm_yellow_secondary_200;
|
|
101
|
+
padding: 0 55px 0 10px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.iconRank {
|
|
105
|
+
color: cm_positive_100;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.rankSuffix {
|
|
109
|
+
composes: textIconBase;
|
|
110
|
+
color: cm_blue_900;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@media mobile {
|
|
114
|
+
.cardContainer {
|
|
115
|
+
width: 240px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.mainIcon {
|
|
119
|
+
margin: 14px 0px 6px;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.textContainerBase {
|
|
123
|
+
margin-bottom: 20px;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.iconStar {
|
|
127
|
+
color: cm_yellow_secondary_200;
|
|
128
|
+
padding: 0 35px 0 10px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.wrapperLottie {
|
|
132
|
+
width: 140px;
|
|
133
|
+
height: 140px;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.textStar, .textRank, .rankSuffix {
|
|
137
|
+
font-size: 54px;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _browserEnv = _interopRequireDefault(require("browser-env"));
|
|
4
|
+
|
|
5
|
+
var _ava = _interopRequireDefault(require("ava"));
|
|
6
|
+
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
var _react2 = require("@testing-library/react");
|
|
10
|
+
|
|
11
|
+
var _ = _interopRequireWildcard(require(".."));
|
|
12
|
+
|
|
13
|
+
var _star = _interopRequireDefault(require("./fixtures/star"));
|
|
14
|
+
|
|
15
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
16
|
+
|
|
17
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
|
|
19
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
20
|
+
|
|
21
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
22
|
+
|
|
23
|
+
(0, _browserEnv.default)({
|
|
24
|
+
pretendToBeVisual: true
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
_ava.default.afterEach(_react2.cleanup);
|
|
28
|
+
|
|
29
|
+
(0, _ava.default)('should trigger lottie animation', async t => {
|
|
30
|
+
const props = _extends(_extends({}, _star.default.props), {}, {
|
|
31
|
+
timerAnimation: 0
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const {
|
|
35
|
+
container,
|
|
36
|
+
rerender
|
|
37
|
+
} = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_.default, props));
|
|
38
|
+
await (0, _react2.waitFor)(async () => {
|
|
39
|
+
const result = await t.try(tt => {
|
|
40
|
+
rerender( /*#__PURE__*/_react.default.createElement(_.default, props));
|
|
41
|
+
const lottieWrapper = container.querySelectorAll('[data-name="lottie-wrapper"]');
|
|
42
|
+
tt.truthy(lottieWrapper);
|
|
43
|
+
});
|
|
44
|
+
if (result.passed) return result.commit();
|
|
45
|
+
result.discard();
|
|
46
|
+
throw result.errors;
|
|
47
|
+
});
|
|
48
|
+
t.pass();
|
|
49
|
+
});
|
|
50
|
+
(0, _ava.default)('setAnimations', t => {
|
|
51
|
+
t.plan(2);
|
|
52
|
+
|
|
53
|
+
const _setIsAnimationVisible = () => {
|
|
54
|
+
t.pass();
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const _setIsAnimated = () => {
|
|
58
|
+
t.pass();
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
(0, _.setAnimations)(_setIsAnimationVisible, _setIsAnimated)();
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=card-congrats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/review-card-congrats/test/card-congrats.js"],"names":["pretendToBeVisual","test","afterEach","cleanup","t","props","starFixture","timerAnimation","container","rerender","result","try","tt","lottieWrapper","querySelectorAll","truthy","passed","commit","discard","errors","pass","plan","_setIsAnimationVisible","_setIsAnimated"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,yBAAW;AAACA,EAAAA,iBAAiB,EAAE;AAApB,CAAX;;AAEAC,aAAKC,SAAL,CAAeC,eAAf;;AAEA,kBAAK,iCAAL,EAAwC,MAAMC,CAAN,IAAW;AACjD,QAAMC,KAAK,yBAAOC,cAAYD,KAAnB;AAA0BE,IAAAA,cAAc,EAAE;AAA1C,IAAX;;AACA,QAAM;AAACC,IAAAA,SAAD;AAAYC,IAAAA;AAAZ,MAAwB,kCAAO,6BAAC,SAAD,EAAwBJ,KAAxB,CAAP,CAA9B;AAEA,QAAM,qBAAQ,YAAY;AACxB,UAAMK,MAAM,GAAG,MAAMN,CAAC,CAACO,GAAF,CAAMC,EAAE,IAAI;AAC/BH,MAAAA,QAAQ,eAAC,6BAAC,SAAD,EAAwBJ,KAAxB,CAAD,CAAR;AACA,YAAMQ,aAAa,GAAGL,SAAS,CAACM,gBAAV,CAA2B,8BAA3B,CAAtB;AACAF,MAAAA,EAAE,CAACG,MAAH,CAAUF,aAAV;AACD,KAJoB,CAArB;AAKA,QAAIH,MAAM,CAACM,MAAX,EAAmB,OAAON,MAAM,CAACO,MAAP,EAAP;AACnBP,IAAAA,MAAM,CAACQ,OAAP;AACA,UAAMR,MAAM,CAACS,MAAb;AACD,GATK,CAAN;AAUAf,EAAAA,CAAC,CAACgB,IAAF;AACD,CAfD;AAiBA,kBAAK,eAAL,EAAsBhB,CAAC,IAAI;AACzBA,EAAAA,CAAC,CAACiB,IAAF,CAAO,CAAP;;AACA,QAAMC,sBAAsB,GAAG,MAAM;AACnClB,IAAAA,CAAC,CAACgB,IAAF;AACD,GAFD;;AAGA,QAAMG,cAAc,GAAG,MAAM;AAC3BnB,IAAAA,CAAC,CAACgB,IAAF;AACD,GAFD;;AAIA,uBAAcE,sBAAd,EAAsCC,cAAtC;AACD,CAVD","sourcesContent":["import browserEnv from 'browser-env';\nimport test from 'ava';\nimport React from 'react';\nimport {render, cleanup, waitFor} from '@testing-library/react';\nimport ReviewCardCongrats, {setAnimations} from '..';\nimport starFixture from './fixtures/star';\n\nbrowserEnv({pretendToBeVisual: true});\n\ntest.afterEach(cleanup);\n\ntest('should trigger lottie animation', async t => {\n const props = {...starFixture.props, timerAnimation: 0};\n const {container, rerender} = render(<ReviewCardCongrats {...props} />);\n\n await waitFor(async () => {\n const result = await t.try(tt => {\n rerender(<ReviewCardCongrats {...props} />);\n const lottieWrapper = container.querySelectorAll('[data-name=\"lottie-wrapper\"]');\n tt.truthy(lottieWrapper);\n });\n if (result.passed) return result.commit();\n result.discard();\n throw result.errors;\n });\n t.pass();\n});\n\ntest('setAnimations', t => {\n t.plan(2);\n const _setIsAnimationVisible = () => {\n t.pass();\n };\n const _setIsAnimated = () => {\n t.pass();\n };\n\n setAnimations(_setIsAnimationVisible, _setIsAnimated)();\n});\n"],"file":"card-congrats.js"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = exports.defaultProps = void 0;
|
|
5
|
+
|
|
6
|
+
var _rank = _interopRequireDefault(require("../../../../atom/lottie-wrapper/test/fixtures/rank"));
|
|
7
|
+
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
|
|
10
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
|
+
|
|
12
|
+
const defaultProps = {
|
|
13
|
+
'aria-label': 'Review Card Congrats Container',
|
|
14
|
+
'data-name': 'card-rank',
|
|
15
|
+
animationLottie: _extends(_extends({}, _rank.default.props), {}, {
|
|
16
|
+
height: undefined,
|
|
17
|
+
width: undefined
|
|
18
|
+
}),
|
|
19
|
+
cardType: 'card-rank',
|
|
20
|
+
iconAriaLabel: 'Image without information',
|
|
21
|
+
className: undefined,
|
|
22
|
+
reviewCardTitle: 'You are now',
|
|
23
|
+
reviewCardValue: '14',
|
|
24
|
+
rankSuffix: 'th',
|
|
25
|
+
timerAnimation: 200
|
|
26
|
+
};
|
|
27
|
+
exports.defaultProps = defaultProps;
|
|
28
|
+
var _default = {
|
|
29
|
+
props: defaultProps
|
|
30
|
+
};
|
|
31
|
+
exports.default = _default;
|
|
32
|
+
//# sourceMappingURL=rank.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/molecule/review-card-congrats/test/fixtures/rank.js"],"names":["defaultProps","animationLottie","props","height","undefined","width","cardType","iconAriaLabel","className","reviewCardTitle","reviewCardValue","rankSuffix","timerAnimation"],"mappings":";;;;;AAAA;;;;;;AAEO,MAAMA,YAAY,GAAG;AAC1B,gBAAc,gCADY;AAE1B,eAAa,WAFa;AAG1BC,EAAAA,eAAe,wBAAMA,cAAgBC,KAAtB;AAA6BC,IAAAA,MAAM,EAAEC,SAArC;AAAgDC,IAAAA,KAAK,EAAED;AAAvD,IAHW;AAI1BE,EAAAA,QAAQ,EAAE,WAJgB;AAK1BC,EAAAA,aAAa,EAAE,2BALW;AAM1BC,EAAAA,SAAS,EAAEJ,SANe;AAO1BK,EAAAA,eAAe,EAAE,aAPS;AAQ1BC,EAAAA,eAAe,EAAE,IARS;AAS1BC,EAAAA,UAAU,EAAE,IATc;AAU1BC,EAAAA,cAAc,EAAE;AAVU,CAArB;;eAaQ;AAACV,EAAAA,KAAK,EAAEF;AAAR,C","sourcesContent":["import animationLottie from '../../../../atom/lottie-wrapper/test/fixtures/rank';\n\nexport const defaultProps = {\n 'aria-label': 'Review Card Congrats Container',\n 'data-name': 'card-rank',\n animationLottie: {...animationLottie.props, height: undefined, width: undefined},\n cardType: 'card-rank',\n iconAriaLabel: 'Image without information',\n className: undefined,\n reviewCardTitle: 'You are now',\n reviewCardValue: '14',\n rankSuffix: 'th',\n timerAnimation: 200\n};\n\nexport default {props: defaultProps};\n"],"file":"rank.js"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = exports.defaultProps = void 0;
|
|
5
|
+
|
|
6
|
+
var _default2 = _interopRequireDefault(require("../../../../atom/lottie-wrapper/test/fixtures/default"));
|
|
7
|
+
|
|
8
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
+
|
|
10
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
11
|
+
|
|
12
|
+
const defaultProps = {
|
|
13
|
+
'aria-label': 'Review Card Congrats Container',
|
|
14
|
+
'data-name': 'card-star',
|
|
15
|
+
animationLottie: _extends(_extends({}, _default2.default.props), {}, {
|
|
16
|
+
height: undefined,
|
|
17
|
+
width: undefined
|
|
18
|
+
}),
|
|
19
|
+
iconAriaLabel: 'Image without information',
|
|
20
|
+
className: undefined,
|
|
21
|
+
cardType: 'card-star',
|
|
22
|
+
reviewCardTitle: 'You have won',
|
|
23
|
+
reviewCardValue: '100',
|
|
24
|
+
timerAnimation: 200
|
|
25
|
+
};
|
|
26
|
+
exports.defaultProps = defaultProps;
|
|
27
|
+
var _default = {
|
|
28
|
+
props: defaultProps
|
|
29
|
+
};
|
|
30
|
+
exports.default = _default;
|
|
31
|
+
//# sourceMappingURL=star.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/molecule/review-card-congrats/test/fixtures/star.js"],"names":["defaultProps","animationLottie","props","height","undefined","width","iconAriaLabel","className","cardType","reviewCardTitle","reviewCardValue","timerAnimation"],"mappings":";;;;;AAAA;;;;;;AAEO,MAAMA,YAAY,GAAG;AAC1B,gBAAc,gCADY;AAE1B,eAAa,WAFa;AAG1BC,EAAAA,eAAe,wBAAMA,kBAAgBC,KAAtB;AAA6BC,IAAAA,MAAM,EAAEC,SAArC;AAAgDC,IAAAA,KAAK,EAAED;AAAvD,IAHW;AAI1BE,EAAAA,aAAa,EAAE,2BAJW;AAK1BC,EAAAA,SAAS,EAAEH,SALe;AAM1BI,EAAAA,QAAQ,EAAE,WANgB;AAO1BC,EAAAA,eAAe,EAAE,cAPS;AAQ1BC,EAAAA,eAAe,EAAE,KARS;AAS1BC,EAAAA,cAAc,EAAE;AATU,CAArB;;eAYQ;AAACT,EAAAA,KAAK,EAAEF;AAAR,C","sourcesContent":["import animationLottie from '../../../../atom/lottie-wrapper/test/fixtures/default';\n\nexport const defaultProps = {\n 'aria-label': 'Review Card Congrats Container',\n 'data-name': 'card-star',\n animationLottie: {...animationLottie.props, height: undefined, width: undefined},\n iconAriaLabel: 'Image without information',\n className: undefined,\n cardType: 'card-star',\n reviewCardTitle: 'You have won',\n reviewCardValue: '100',\n timerAnimation: 200\n};\n\nexport default {props: defaultProps};\n"],"file":"star.js"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ava = _interopRequireDefault(require("ava"));
|
|
4
|
+
|
|
5
|
+
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
6
|
+
|
|
7
|
+
var _renderComponent = _interopRequireDefault(require("../../../test/helpers/render-component"));
|
|
8
|
+
|
|
9
|
+
var _ = _interopRequireDefault(require(".."));
|
|
10
|
+
|
|
11
|
+
var _rank = _interopRequireDefault(require("./fixtures/rank"));
|
|
12
|
+
|
|
13
|
+
var _star = _interopRequireDefault(require("./fixtures/star"));
|
|
14
|
+
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
|
|
17
|
+
(0, _ava.default)('Molecule › MoleculeReviewCardCongrats > should have valid propTypes', t => {
|
|
18
|
+
t.pass();
|
|
19
|
+
(0, _forEach.default)(_.default.propTypes, (value, key) => {
|
|
20
|
+
t.not(value, undefined, `PropType for "Molecule.MoleculeReviewCardCongrats.propTypes.${key}" may not be undefined. Did you mistype the propTypes definition?`);
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
(0, _ava.default)('Molecule › MoleculeReviewCardCongrats › Rank › should be rendered', _renderComponent.default, _.default, _rank.default);
|
|
24
|
+
(0, _ava.default)('Molecule › MoleculeReviewCardCongrats › Star › should be rendered', _renderComponent.default, _.default, _star.default);
|
|
25
|
+
//# sourceMappingURL=fixtures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecule/review-card-congrats/test/fixtures.js"],"names":["t","pass","MoleculeReviewCardCongrats","propTypes","value","key","not","undefined","renderComponentMacro","fixtureRank","fixtureStar"],"mappings":";;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,kBAAK,qEAAL,EAA4EA,CAAC,IAAI;AAC/EA,EAAAA,CAAC,CAACC,IAAF;AACA,wBAAQC,UAA2BC,SAAnC,EAA8C,CAACC,KAAD,EAAQC,GAAR,KAAgB;AAC5DL,IAAAA,CAAC,CAACM,GAAF,CAAMF,KAAN,EAAaG,SAAb,EAAyB,+DAA8DF,GAAI,mEAA3F;AACD,GAFD;AAGD,CALD;AAOA,kBAAK,mEAAL,EAA0EG,wBAA1E,EAAgGN,SAAhG,EAA4HO,aAA5H;AACA,kBAAK,mEAAL,EAA0ED,wBAA1E,EAAgGN,SAAhG,EAA4HQ,aAA5H","sourcesContent":["import test from 'ava';\nimport forEach from 'lodash/forEach';\nimport renderComponentMacro from '../../../test/helpers/render-component';\nimport MoleculeReviewCardCongrats from '..';\nimport fixtureRank from './fixtures/rank';\nimport fixtureStar from './fixtures/star';\n\ntest('Molecule › MoleculeReviewCardCongrats > should have valid propTypes', t => {\n t.pass();\n forEach(MoleculeReviewCardCongrats.propTypes, (value, key) => {\n t.not(value, undefined, `PropType for \"Molecule.MoleculeReviewCardCongrats.propTypes.${key}\" may not be undefined. Did you mistype the propTypes definition?`);\n });\n});\n\ntest('Molecule › MoleculeReviewCardCongrats › Rank › should be rendered', renderComponentMacro, MoleculeReviewCardCongrats, fixtureRank);\ntest('Molecule › MoleculeReviewCardCongrats › Star › should be rendered', renderComponentMacro, MoleculeReviewCardCongrats, fixtureStar);\n"],"file":"fixtures.js"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = exports.setScroll = void 0;
|
|
5
|
+
|
|
6
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
|
|
11
|
+
|
|
12
|
+
var _reviewCardCongrats = _interopRequireDefault(require("../../molecule/review-card-congrats"));
|
|
13
|
+
|
|
14
|
+
var _style = _interopRequireDefault(require("./style.css"));
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
|
|
18
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
19
|
+
|
|
20
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
+
|
|
22
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
|
+
|
|
24
|
+
const setScroll = container => () => {
|
|
25
|
+
container.current.scrollTo({
|
|
26
|
+
left: 1000,
|
|
27
|
+
behavior: 'smooth'
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.setScroll = setScroll;
|
|
32
|
+
|
|
33
|
+
const ReviewCongrats = props => {
|
|
34
|
+
const {
|
|
35
|
+
'aria-label': ariaLabel,
|
|
36
|
+
'data-name': dataName,
|
|
37
|
+
title,
|
|
38
|
+
cardCongratsStar,
|
|
39
|
+
cardCongratsRank,
|
|
40
|
+
buttonRevising,
|
|
41
|
+
buttonRevisingSkill
|
|
42
|
+
} = props;
|
|
43
|
+
const container = (0, _react.useRef)(null);
|
|
44
|
+
(0, _react.useEffect)(() => {
|
|
45
|
+
const timer = setTimeout(setScroll(container), 2000);
|
|
46
|
+
return () => timer && clearTimeout(timer);
|
|
47
|
+
}, []);
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
49
|
+
className: _style.default.containerCongrats,
|
|
50
|
+
"aria-label": ariaLabel,
|
|
51
|
+
"data-name": dataName
|
|
52
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
53
|
+
className: _style.default.title
|
|
54
|
+
}, title), /*#__PURE__*/_react.default.createElement("div", {
|
|
55
|
+
ref: container,
|
|
56
|
+
className: _style.default.containerCards
|
|
57
|
+
}, /*#__PURE__*/_react.default.createElement(_reviewCardCongrats.default, _extends({}, cardCongratsStar, {
|
|
58
|
+
className: _style.default.cardStar
|
|
59
|
+
})), /*#__PURE__*/_react.default.createElement(_reviewCardCongrats.default, _extends({}, cardCongratsRank, {
|
|
60
|
+
timerAnimation: 1800,
|
|
61
|
+
className: _style.default.cardRank
|
|
62
|
+
}))), /*#__PURE__*/_react.default.createElement("div", {
|
|
63
|
+
className: _style.default.buttonContainer
|
|
64
|
+
}, /*#__PURE__*/_react.default.createElement(_buttonLink.default, _extends({}, buttonRevising, {
|
|
65
|
+
className: _style.default.buttonRevise,
|
|
66
|
+
"data-name": "revise-skill-link"
|
|
67
|
+
})), /*#__PURE__*/_react.default.createElement(_buttonLink.default, _extends({}, buttonRevisingSkill, {
|
|
68
|
+
className: _style.default.buttonRevise
|
|
69
|
+
}))));
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
ReviewCongrats.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
73
|
+
'aria-label': _propTypes.default.string,
|
|
74
|
+
'data-name': _propTypes.default.string,
|
|
75
|
+
title: _propTypes.default.string,
|
|
76
|
+
cardCongratsStar: _propTypes.default.shape(_reviewCardCongrats.default.propTypes),
|
|
77
|
+
cardCongratsRank: _propTypes.default.shape(_reviewCardCongrats.default.propTypes),
|
|
78
|
+
buttonRevising: _propTypes.default.shape({
|
|
79
|
+
label: _propTypes.default.string,
|
|
80
|
+
onClick: _propTypes.default.func,
|
|
81
|
+
type: _propTypes.default.string
|
|
82
|
+
}),
|
|
83
|
+
buttonRevisingSkill: _propTypes.default.shape({
|
|
84
|
+
label: _propTypes.default.string,
|
|
85
|
+
onClick: _propTypes.default.func,
|
|
86
|
+
type: _propTypes.default.string
|
|
87
|
+
})
|
|
88
|
+
} : {};
|
|
89
|
+
var _default = ReviewCongrats;
|
|
90
|
+
exports.default = _default;
|
|
91
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/organism/review-congrats/index.js"],"names":["setScroll","container","current","scrollTo","left","behavior","ReviewCongrats","props","ariaLabel","dataName","title","cardCongratsStar","cardCongratsRank","buttonRevising","buttonRevisingSkill","timer","setTimeout","clearTimeout","style","containerCongrats","containerCards","cardStar","cardRank","buttonContainer","buttonRevise","propTypes","PropTypes","string","shape","MoleculeReviewCardCongrats","label","onClick","func","type"],"mappings":";;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEO,MAAMA,SAAS,GAAGC,SAAS,IAAI,MAAM;AAC1CA,EAAAA,SAAS,CAACC,OAAV,CAAkBC,QAAlB,CAA2B;AACzBC,IAAAA,IAAI,EAAE,IADmB;AAEzBC,IAAAA,QAAQ,EAAE;AAFe,GAA3B;AAID,CALM;;;;AAOP,MAAMC,cAAc,GAAGC,KAAK,IAAI;AAC9B,QAAM;AACJ,kBAAcC,SADV;AAEJ,iBAAaC,QAFT;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,gBAJI;AAKJC,IAAAA,gBALI;AAMJC,IAAAA,cANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AAUA,QAAMN,SAAS,GAAG,mBAAO,IAAP,CAAlB;AAEA,wBAAU,MAAM;AACd,UAAMc,KAAK,GAAGC,UAAU,CAAChB,SAAS,CAACC,SAAD,CAAV,EAAuB,IAAvB,CAAxB;AACA,WAAO,MAAMc,KAAK,IAAIE,YAAY,CAACF,KAAD,CAAlC;AACD,GAHD,EAGG,EAHH;AAKA,sBACE;AAAK,IAAA,SAAS,EAAEG,eAAMC,iBAAtB;AAAyC,kBAAYX,SAArD;AAAgE,iBAAWC;AAA3E,kBACE;AAAK,IAAA,SAAS,EAAES,eAAMR;AAAtB,KAA8BA,KAA9B,CADF,eAEE;AAAK,IAAA,GAAG,EAAET,SAAV;AAAqB,IAAA,SAAS,EAAEiB,eAAME;AAAtC,kBACE,6BAAC,2BAAD,eAAgCT,gBAAhC;AAAkD,IAAA,SAAS,EAAEO,eAAMG;AAAnE,KADF,eAEE,6BAAC,2BAAD,eACMT,gBADN;AAEE,IAAA,cAAc,EAAE,IAFlB;AAGE,IAAA,SAAS,EAAEM,eAAMI;AAHnB,KAFF,CAFF,eAUE;AAAK,IAAA,SAAS,EAAEJ,eAAMK;AAAtB,kBACE,6BAAC,mBAAD,eACMV,cADN;AAEE,IAAA,SAAS,EAAEK,eAAMM,YAFnB;AAGE,iBAAU;AAHZ,KADF,eAME,6BAAC,mBAAD,eAAgBV,mBAAhB;AAAqC,IAAA,SAAS,EAAEI,eAAMM;AAAtD,KANF,CAVF,CADF;AAqBD,CAvCD;;AAyCAlB,cAAc,CAACmB,SAAf,2CAA2B;AACzB,gBAAcC,mBAAUC,MADC;AAEzB,eAAaD,mBAAUC,MAFE;AAGzBjB,EAAAA,KAAK,EAAEgB,mBAAUC,MAHQ;AAIzBhB,EAAAA,gBAAgB,EAAEe,mBAAUE,KAAV,CAAgBC,4BAA2BJ,SAA3C,CAJO;AAKzBb,EAAAA,gBAAgB,EAAEc,mBAAUE,KAAV,CAAgBC,4BAA2BJ,SAA3C,CALO;AAMzBZ,EAAAA,cAAc,EAAEa,mBAAUE,KAAV,CAAgB;AAC9BE,IAAAA,KAAK,EAAEJ,mBAAUC,MADa;AAE9BI,IAAAA,OAAO,EAAEL,mBAAUM,IAFW;AAG9BC,IAAAA,IAAI,EAAEP,mBAAUC;AAHc,GAAhB,CANS;AAWzBb,EAAAA,mBAAmB,EAAEY,mBAAUE,KAAV,CAAgB;AACnCE,IAAAA,KAAK,EAAEJ,mBAAUC,MADkB;AAEnCI,IAAAA,OAAO,EAAEL,mBAAUM,IAFgB;AAGnCC,IAAAA,IAAI,EAAEP,mBAAUC;AAHmB,GAAhB;AAXI,CAA3B;eAkBerB,c","sourcesContent":["import React, {useEffect, useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport ButtonLink from '../../atom/button-link';\nimport MoleculeReviewCardCongrats from '../../molecule/review-card-congrats';\nimport style from './style.css';\n\nexport const setScroll = container => () => {\n container.current.scrollTo({\n left: 1000,\n behavior: 'smooth'\n });\n};\n\nconst ReviewCongrats = props => {\n const {\n 'aria-label': ariaLabel,\n 'data-name': dataName,\n title,\n cardCongratsStar,\n cardCongratsRank,\n buttonRevising,\n buttonRevisingSkill\n } = props;\n\n const container = useRef(null);\n\n useEffect(() => {\n const timer = setTimeout(setScroll(container), 2000);\n return () => timer && clearTimeout(timer);\n }, []);\n\n return (\n <div className={style.containerCongrats} aria-label={ariaLabel} data-name={dataName}>\n <div className={style.title}>{title}</div>\n <div ref={container} className={style.containerCards}>\n <MoleculeReviewCardCongrats {...cardCongratsStar} className={style.cardStar} />\n <MoleculeReviewCardCongrats\n {...cardCongratsRank}\n timerAnimation={1800}\n className={style.cardRank}\n />\n </div>\n <div className={style.buttonContainer}>\n <ButtonLink\n {...buttonRevising}\n className={style.buttonRevise}\n data-name=\"revise-skill-link\"\n />\n <ButtonLink {...buttonRevisingSkill} className={style.buttonRevise} />\n </div>\n </div>\n );\n};\n\nReviewCongrats.propTypes = {\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n title: PropTypes.string,\n cardCongratsStar: PropTypes.shape(MoleculeReviewCardCongrats.propTypes),\n cardCongratsRank: PropTypes.shape(MoleculeReviewCardCongrats.propTypes),\n buttonRevising: PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n type: PropTypes.string\n }),\n buttonRevisingSkill: PropTypes.shape({\n label: PropTypes.string,\n onClick: PropTypes.func,\n type: PropTypes.string\n })\n};\n\nexport default ReviewCongrats;\n"],"file":"index.js"}
|