@edx/frontend-plugin-advertisements 2.2.0 → 2.3.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.
|
@@ -4,14 +4,161 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
var _analytics = require("@edx/frontend-platform/analytics");
|
|
11
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
12
|
+
var _paragon = require("@openedx/paragon");
|
|
13
|
+
var _icons = require("@openedx/paragon/icons");
|
|
14
|
+
var _SidebarContext = _interopRequireDefault(require("@src/courseware/course/sidebar/SidebarContext"));
|
|
15
|
+
var _messages = _interopRequireDefault(require("@src/courseware/course/sequence/lock-paywall/messages"));
|
|
16
|
+
var _edX_locked_certificate = _interopRequireDefault(require("@src/generic/assets/edX_locked_certificate.png"));
|
|
17
|
+
var _modelStore = require("@src/generic/model-store");
|
|
18
|
+
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
19
|
+
var _UpsellBullets = require("@src/generic/upsell-bullets/UpsellBullets");
|
|
20
|
+
var _cohesion = require("../cohesion");
|
|
8
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
22
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
23
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
24
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
25
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
26
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
27
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
28
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
14
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
-
const DefaultLockPaywall =
|
|
29
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint import/no-unresolved: 0 */
|
|
30
|
+
const DefaultLockPaywall = _ref => {
|
|
31
|
+
let {
|
|
32
|
+
courseId
|
|
33
|
+
} = _ref;
|
|
34
|
+
const intl = (0, _i18n.useIntl)();
|
|
35
|
+
const {
|
|
36
|
+
notificationTrayVisible
|
|
37
|
+
} = (0, _react.useContext)(_SidebarContext.default);
|
|
38
|
+
const course = (0, _modelStore.useModel)('coursewareMeta', courseId);
|
|
39
|
+
const {
|
|
40
|
+
accessExpiration,
|
|
41
|
+
marketingUrl,
|
|
42
|
+
offer
|
|
43
|
+
} = course;
|
|
44
|
+
const {
|
|
45
|
+
org,
|
|
46
|
+
verifiedMode
|
|
47
|
+
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
48
|
+
const {
|
|
49
|
+
conversion
|
|
50
|
+
} = (0, _cohesion.useCohesion)(courseId);
|
|
51
|
+
|
|
52
|
+
// the following variables are set and used for resposive layout to work with
|
|
53
|
+
// whether the NotificationTray is open or not and if there's an offer with longer text
|
|
54
|
+
const shouldDisplayBulletPointsBelowCertificate = (0, _paragon.useWindowSize)().width <= _paragon.breakpoints.large.minWidth;
|
|
55
|
+
const shouldDisplayGatedContentOneColumn = (0, _paragon.useWindowSize)().width <= _paragon.breakpoints.extraLarge.minWidth && notificationTrayVisible;
|
|
56
|
+
const shouldDisplayGatedContentTwoColumns = (0, _paragon.useWindowSize)().width < _paragon.breakpoints.large.minWidth && notificationTrayVisible;
|
|
57
|
+
const shouldDisplayGatedContentTwoColumnsHalf = (0, _paragon.useWindowSize)().width <= _paragon.breakpoints.large.minWidth && !notificationTrayVisible;
|
|
58
|
+
const shouldWrapTextOnButton = (0, _paragon.useWindowSize)().width > _paragon.breakpoints.extraSmall.minWidth;
|
|
59
|
+
const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;
|
|
60
|
+
const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;
|
|
61
|
+
if (!verifiedMode) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const eventProperties = {
|
|
65
|
+
org_key: org,
|
|
66
|
+
courserun_key: courseId
|
|
67
|
+
};
|
|
68
|
+
const logClick = () => {
|
|
69
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
70
|
+
linkCategory: '(none)',
|
|
71
|
+
linkName: 'in_course_upgrade',
|
|
72
|
+
linkType: 'link',
|
|
73
|
+
pageName: 'in_course'
|
|
74
|
+
}));
|
|
75
|
+
conversion('Upgraded');
|
|
76
|
+
};
|
|
77
|
+
const logClickPastExpiration = () => {
|
|
78
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
79
|
+
linkCategory: 'gated_content',
|
|
80
|
+
linkName: 'course_details',
|
|
81
|
+
linkType: 'link',
|
|
82
|
+
pageName: 'in_course'
|
|
83
|
+
}));
|
|
84
|
+
};
|
|
85
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Alert, {
|
|
86
|
+
variant: "light",
|
|
87
|
+
"aria-live": "off",
|
|
88
|
+
icon: _icons.Locked,
|
|
89
|
+
className: "lock-paywall-container",
|
|
90
|
+
"data-testId": "lock-paywall-test-id",
|
|
91
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
92
|
+
className: "row",
|
|
93
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
94
|
+
className: "col",
|
|
95
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("h4", {
|
|
96
|
+
"aria-level": "3",
|
|
97
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
98
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.title'])
|
|
99
|
+
})
|
|
100
|
+
}), pastExpirationDeadline ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
101
|
+
className: "mb-2 upgrade-intro",
|
|
102
|
+
children: [intl.formatMessage(_messages.default['learn.lockPaywall.content.pastExpiration']), /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Hyperlink, {
|
|
103
|
+
destination: marketingUrl,
|
|
104
|
+
onClick: logClickPastExpiration,
|
|
105
|
+
target: "_blank",
|
|
106
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.courseDetails'])
|
|
107
|
+
})]
|
|
108
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
109
|
+
className: "mb-2 upgrade-intro",
|
|
110
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.content'])
|
|
111
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
112
|
+
className: (0, _classnames.default)('d-inline-flex flex-row', {
|
|
113
|
+
'flex-wrap': notificationTrayVisible || shouldDisplayBulletPointsBelowCertificate
|
|
114
|
+
}),
|
|
115
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
116
|
+
style: {
|
|
117
|
+
float: 'left'
|
|
118
|
+
},
|
|
119
|
+
className: "mr-3 mb-2",
|
|
120
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
121
|
+
alt: intl.formatMessage(_messages.default['learn.lockPaywall.example.alt']),
|
|
122
|
+
src: _edX_locked_certificate.default,
|
|
123
|
+
className: "border-0 certificate-image-banner",
|
|
124
|
+
style: {
|
|
125
|
+
height: '128px',
|
|
126
|
+
width: '175px'
|
|
127
|
+
}
|
|
128
|
+
})
|
|
129
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
130
|
+
className: "mw-xs list-div",
|
|
131
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
132
|
+
className: "mb-2",
|
|
133
|
+
children: intl.formatMessage(_messages.default['learn.lockPaywall.list.intro'])
|
|
134
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("ul", {
|
|
135
|
+
className: "fa-ul ml-4 pl-2",
|
|
136
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.VerifiedCertBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.UnlockGradedBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.FullAccessBullet, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpsellBullets.SupportMissionBullet, {})]
|
|
137
|
+
})]
|
|
138
|
+
})]
|
|
139
|
+
})]
|
|
140
|
+
}), pastExpirationDeadline ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
141
|
+
className: (0, _classnames.default)('d-md-flex align-items-md-center text-right', {
|
|
142
|
+
'col-md-5 mx-md-0': notificationTrayVisible,
|
|
143
|
+
'col-md-4 mx-md-3 justify-content-center': !notificationTrayVisible && !shouldDisplayGatedContentTwoColumnsHalf,
|
|
144
|
+
'col-md-11 justify-content-end': shouldDisplayGatedContentOneColumn && !shouldDisplayGatedContentTwoColumns,
|
|
145
|
+
'col-md-6 justify-content-center': shouldDisplayGatedContentTwoColumnsHalf
|
|
146
|
+
}),
|
|
147
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
148
|
+
offer: offer,
|
|
149
|
+
onClick: logClick,
|
|
150
|
+
verifiedMode: verifiedMode,
|
|
151
|
+
style: {
|
|
152
|
+
whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null
|
|
153
|
+
},
|
|
154
|
+
"data-testid": "upgrade-button"
|
|
155
|
+
})
|
|
156
|
+
})]
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
DefaultLockPaywall.propTypes = {
|
|
161
|
+
courseId: _propTypes.default.string.isRequired
|
|
162
|
+
};
|
|
16
163
|
var _default = exports.default = DefaultLockPaywall;
|
|
17
164
|
//# sourceMappingURL=DefaultLockPaywall.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLockPaywall.js","names":["_LockPaywall","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","DefaultLockPaywall","props","jsx","_default","exports"],"sources":["../../src/paywall/DefaultLockPaywall.jsx"],"sourcesContent":["import LockPaywall from '@src/courseware/course/sequence/lock-paywall/LockPaywall'; // eslint-disable-line import/no-unresolved\n\nconst DefaultLockPaywall = (props) => (\n <LockPaywall {...props} />\n);\n\nexport default DefaultLockPaywall;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAmF,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,QAAAH,CAAA,EAAAI,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAP,CAAA,OAAAM,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAR,CAAA,GAAAI,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAX,CAAA,EAAAI,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAf,CAAA,aAAAI,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAD,OAAA,CAAAG,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,IAAAe,eAAA,CAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAArB,CAAA,EAAAM,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAF,OAAA,CAAAG,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAJ,CAAA;AAAA,SAAAmB,gBAAAnB,CAAA,EAAAI,CAAA,EAAAC,CAAA,YAAAD,CAAA,GAAAmB,cAAA,CAAAnB,CAAA,MAAAJ,CAAA,GAAAM,MAAA,CAAAgB,cAAA,CAAAtB,CAAA,EAAAI,CAAA,IAAAoB,KAAA,EAAAnB,CAAA,EAAAO,UAAA,MAAAa,YAAA,MAAAC,QAAA,UAAA1B,CAAA,CAAAI,CAAA,IAAAC,CAAA,EAAAL,CAAA;AAAA,SAAAuB,eAAAlB,CAAA,QAAAsB,CAAA,GAAAC,YAAA,CAAAvB,CAAA,uCAAAsB,CAAA,GAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAC,aAAAvB,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAL,CAAA,GAAAK,CAAA,CAAAwB,MAAA,CAAAC,WAAA,kBAAA9B,CAAA,QAAA2B,CAAA,GAAA3B,CAAA,CAAA+B,IAAA,CAAA1B,CAAA,EAAAD,CAAA,uCAAAuB,CAAA,SAAAA,CAAA,YAAAK,SAAA,yEAAA5B,CAAA,GAAA6B,MAAA,GAAAC,MAAA,EAAA7B,CAAA,KAAC;AAEpF,MAAM8B,kBAAkB,GAAIC,KAAK,iBAC/B,IAAArC,WAAA,CAAAsC,GAAA,EAACzC,YAAA,CAAAM,OAAW,EAAAa,aAAA,KAAKqB,KAAK,CAAG,CAC1B;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAArC,OAAA,GAEaiC,kBAAkB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DefaultLockPaywall.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_analytics","_i18n","_paragon","_icons","_SidebarContext","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_UpsellBullets","_cohesion","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultLockPaywall","_ref","courseId","intl","useIntl","notificationTrayVisible","useContext","SidebarContext","course","useModel","accessExpiration","marketingUrl","offer","org","verifiedMode","conversion","useCohesion","shouldDisplayBulletPointsBelowCertificate","useWindowSize","width","breakpoints","large","minWidth","shouldDisplayGatedContentOneColumn","extraLarge","shouldDisplayGatedContentTwoColumns","shouldDisplayGatedContentTwoColumnsHalf","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","eventProperties","org_key","courserun_key","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../src/paywall/DefaultLockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Alert, Hyperlink, breakpoints, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport SidebarContext from '@src/courseware/course/sidebar/SidebarContext';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '@src/generic/upsell-bullets/UpsellBullets';\nimport { useCohesion } from '../cohesion';\n\nconst DefaultLockPaywall = ({\n courseId,\n}) => {\n const intl = useIntl();\n const { notificationTrayVisible } = useContext(SidebarContext);\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const { conversion } = useCohesion(courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayBulletPointsBelowCertificate = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldDisplayGatedContentOneColumn = useWindowSize().width <= breakpoints.extraLarge.minWidth\n && notificationTrayVisible;\n const shouldDisplayGatedContentTwoColumns = useWindowSize().width < breakpoints.large.minWidth\n && notificationTrayVisible;\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth\n && !notificationTrayVisible;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const logClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n conversion('Upgraded');\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testId=\"lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink destination={marketingUrl} onClick={logClickPastExpiration} target=\"_blank\">{intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}</Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': notificationTrayVisible || shouldDisplayBulletPointsBelowCertificate })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-md-flex align-items-md-center text-right', {\n 'col-md-5 mx-md-0': notificationTrayVisible, 'col-md-4 mx-md-3 justify-content-center': !notificationTrayVisible && !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-11 justify-content-end': shouldDisplayGatedContentOneColumn && !shouldDisplayGatedContentTwoColumns, 'col-md-6 justify-content-center': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testid=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nDefaultLockPaywall.propTypes = {\n courseId: PropTypes.string.isRequired,\n};\nexport default DefaultLockPaywall;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ var _analytics = require("@edx/frontend-platform/analytics");
|
|
|
19
19
|
var _reactSdk = require("@optimizely/react-sdk");
|
|
20
20
|
var _data = require("../data");
|
|
21
21
|
var _upsellBullets = require("../generic/upsell-bullets");
|
|
22
|
+
var _cohesion = require("../cohesion");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
24
25
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -56,6 +57,9 @@ const ExperimentalLockPaywall = _ref => {
|
|
|
56
57
|
org,
|
|
57
58
|
verifiedMode
|
|
58
59
|
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
60
|
+
const {
|
|
61
|
+
conversion
|
|
62
|
+
} = (0, _cohesion.useCohesion)(courseId);
|
|
59
63
|
|
|
60
64
|
// the following variables are set and used for resposive layout to work with
|
|
61
65
|
// whether the NotificationTray is open or not and if there's an offer with longer text
|
|
@@ -80,7 +84,7 @@ const ExperimentalLockPaywall = _ref => {
|
|
|
80
84
|
const {
|
|
81
85
|
userId
|
|
82
86
|
} = (0, _auth.getAuthenticatedUser)();
|
|
83
|
-
const
|
|
87
|
+
const handleUpgradeClick = () => {
|
|
84
88
|
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
|
|
85
89
|
linkCategory: '(none)',
|
|
86
90
|
linkName: 'in_course_upgrade',
|
|
@@ -93,8 +97,9 @@ const ExperimentalLockPaywall = _ref => {
|
|
|
93
97
|
Add any additional tracking for Optimizely here.
|
|
94
98
|
*/
|
|
95
99
|
optimizely.track(ANY_CLICK_ACTION);
|
|
100
|
+
conversion('Upgraded');
|
|
96
101
|
};
|
|
97
|
-
const
|
|
102
|
+
const handleUpgradeClickPastExpiration = () => {
|
|
98
103
|
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
99
104
|
linkCategory: 'gated_content',
|
|
100
105
|
linkName: 'course_details',
|
|
@@ -122,7 +127,7 @@ const ExperimentalLockPaywall = _ref => {
|
|
|
122
127
|
"data-testid": "lock-paywall-past-expiration",
|
|
123
128
|
children: [intl.formatMessage(_messages.default['learn.lockPaywall.content.pastExpiration']), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_paragon.Hyperlink, {
|
|
124
129
|
destination: marketingUrl,
|
|
125
|
-
onClick:
|
|
130
|
+
onClick: handleUpgradeClickPastExpiration(eventProperties),
|
|
126
131
|
target: "_blank",
|
|
127
132
|
"data-testid": "lock-paywall-past-expiration-link",
|
|
128
133
|
children: [intl.formatMessage(_messages.default['learn.lockPaywall.courseDetails']), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
@@ -172,7 +177,7 @@ const ExperimentalLockPaywall = _ref => {
|
|
|
172
177
|
}),
|
|
173
178
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
174
179
|
offer: offer,
|
|
175
|
-
onClick: () =>
|
|
180
|
+
onClick: () => handleUpgradeClick(eventProperties, userId),
|
|
176
181
|
verifiedMode: verifiedMode,
|
|
177
182
|
style: {
|
|
178
183
|
whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_reactSdk","_data","_upsellBullets","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ExperimentalLockPaywall","_ref","courseId","optimizely","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT","decision","useDecision","variationKey","org","verifiedMode","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","logClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","object","_default","exports","withOptimizely"],"sources":["../../src/paywall/ExperimentalLockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT } from '../data';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\n\nconst ExperimentalLockPaywall = ({\n courseId,\n optimizely,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\n const { variationKey } = decision;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: experimentKey,\n variation_key: variationKey,\n };\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const logClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_ACTION);\n };\n\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testid=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testid=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink\n destination={marketingUrl}\n onClick={logClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => logClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testid=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nExperimentalLockPaywall.propTypes = {\n courseId: PropTypes.string.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(ExperimentalLockPaywall);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ExperimentalLockPaywall.js","names":["_react","_interopRequireDefault","require","_propTypes","_classnames","_i18n","_paragon","_icons","_messages","_edX_locked_certificate","_modelStore","_upgradeButton","_auth","_analytics","_reactSdk","_data","_upsellBullets","_cohesion","_jsxRuntime","e","__esModule","default","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ExperimentalLockPaywall","_ref","courseId","optimizely","intl","useIntl","course","useModel","accessExpiration","marketingUrl","offer","KEY","experimentKey","ANY_CLICK_ACTION","OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT","decision","useDecision","variationKey","org","verifiedMode","conversion","useCohesion","shouldDisplayGatedContentTwoColumnsHalf","useWindowSize","width","breakpoints","large","minWidth","shouldWrapTextOnButton","extraSmall","accessExpirationDate","Date","expirationDate","pastExpirationDeadline","now","experimentProperties","experiment_key","variation_key","eventProperties","org_key","courserun_key","userId","getAuthenticatedUser","handleUpgradeClick","sendTrackEvent","linkCategory","linkName","linkType","pageName","track","handleUpgradeClickPastExpiration","jsx","Alert","variant","icon","Locked","className","children","jsxs","formatMessage","messages","Hyperlink","destination","onClick","target","id","defaultMessage","description","classNames","style","float","alt","src","certificateLocked","height","VerifiedCertBullet","UnlockGradedBullet","FullAccessBullet","SupportMissionBullet","UpgradeButton","whiteSpace","propTypes","PropTypes","string","isRequired","object","_default","exports","withOptimizely"],"sources":["../../src/paywall/ExperimentalLockPaywall.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n Alert, breakpoints, Hyperlink, useWindowSize,\n} from '@openedx/paragon';\nimport { Locked } from '@openedx/paragon/icons';\nimport messages from '@src/courseware/course/sequence/lock-paywall/messages';\nimport certificateLocked from '@src/generic/assets/edX_locked_certificate.png';\nimport { useModel } from '@src/generic/model-store';\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { getAuthenticatedUser } from '@edx/frontend-platform/auth';\nimport { sendTrackEvent } from '@edx/frontend-platform/analytics';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\n\nimport { OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT } from '../data';\nimport {\n VerifiedCertBullet,\n UnlockGradedBullet,\n FullAccessBullet,\n SupportMissionBullet,\n} from '../generic/upsell-bullets';\nimport { useCohesion } from '../cohesion';\n\nconst ExperimentalLockPaywall = ({\n courseId,\n optimizely,\n}) => {\n const intl = useIntl();\n const course = useModel('coursewareMeta', courseId);\n const {\n accessExpiration,\n marketingUrl,\n offer,\n } = course;\n\n /*\n Update the following line with the new experiment constants.\n KEY and ANY_CLICK_ACTION are required and used in the later in the code.\n To update the variables, make changes in ../optimizely/utils\n */\n const { KEY: experimentKey, ANY_CLICK_ACTION } = OPTIMIZELY_AUDIT_TRIAL_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\n const { variationKey } = decision;\n\n const {\n org, verifiedMode,\n } = useModel('courseHomeMeta', courseId);\n\n const { conversion } = useCohesion(courseId);\n\n // the following variables are set and used for resposive layout to work with\n // whether the NotificationTray is open or not and if there's an offer with longer text\n const shouldDisplayGatedContentTwoColumnsHalf = useWindowSize().width <= breakpoints.large.minWidth;\n const shouldWrapTextOnButton = useWindowSize().width > breakpoints.extraSmall.minWidth;\n\n const accessExpirationDate = accessExpiration ? new Date(accessExpiration.expirationDate) : null;\n const pastExpirationDeadline = accessExpiration ? new Date(Date.now()) > accessExpirationDate : false;\n\n if (!verifiedMode) {\n return null;\n }\n\n // Experiment specific properties or data should not be sent to the tracking logs, so break this\n // object out to ensure it is only sent to Segment and not the tracking logs.\n const experimentProperties = {\n experiment_key: experimentKey,\n variation_key: variationKey,\n };\n\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n\n const { userId } = getAuthenticatedUser();\n\n const handleUpgradeClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: '(none)',\n linkName: 'in_course_upgrade',\n linkType: 'link',\n pageName: 'in_course',\n });\n\n /*\n Confirm that the ANY_CLICK_ACTION matches the event key in Optimizely.\n Add any additional tracking for Optimizely here.\n */\n optimizely.track(ANY_CLICK_ACTION);\n\n conversion('Upgraded');\n };\n\n const handleUpgradeClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.gated_content.past_expiration.link_clicked', {\n ...eventProperties,\n linkCategory: 'gated_content',\n linkName: 'course_details',\n linkType: 'link',\n pageName: 'in_course',\n });\n };\n\n return (\n <Alert variant=\"light\" aria-live=\"off\" icon={Locked} className=\"lock-paywall-container\" data-testid=\"lock-paywall-lock-paywall-test-id\">\n <div className=\"row\">\n <div className=\"col\">\n <h4 aria-level=\"3\">\n <span>{intl.formatMessage(messages['learn.lockPaywall.title'])}</span>\n </h4>\n {pastExpirationDeadline ? (\n <div className=\"mb-2 upgrade-intro\" data-testid=\"lock-paywall-past-expiration\">\n {intl.formatMessage(messages['learn.lockPaywall.content.pastExpiration'])}\n <Hyperlink\n destination={marketingUrl}\n onClick={handleUpgradeClickPastExpiration(eventProperties)}\n target=\"_blank\"\n data-testid=\"lock-paywall-past-expiration-link\"\n >\n {intl.formatMessage(messages['learn.lockPaywall.courseDetails'])}\n <span>\n {intl.formatMessage({\n id: 'learn.lockPaywall.content.link.new-tab.screenreader-only.message',\n defaultMessage: 'in a new tab',\n description: 'Screenreader only text for new tab link',\n })}\n </span>\n </Hyperlink>\n </div>\n ) : (\n <div className=\"mb-2 upgrade-intro\">\n {intl.formatMessage(messages['learn.lockPaywall.content'])}\n </div>\n )}\n\n <div className={classNames('d-inline-flex flex-row', { 'flex-wrap': shouldDisplayGatedContentTwoColumnsHalf })}>\n <div style={{ float: 'left' }} className=\"mr-3 mb-2\">\n <img\n alt={intl.formatMessage(messages['learn.lockPaywall.example.alt'])}\n src={certificateLocked}\n className=\"border-0 certificate-image-banner\"\n style={{ height: '128px', width: '175px' }}\n />\n </div>\n\n <div className=\"mw-xs list-div\">\n <div className=\"mb-2\">\n {intl.formatMessage(messages['learn.lockPaywall.list.intro'])}\n </div>\n <ul className=\"fa-ul ml-4 pl-2\">\n <VerifiedCertBullet />\n <UnlockGradedBullet />\n <FullAccessBullet />\n <SupportMissionBullet />\n </ul>\n </div>\n </div>\n </div>\n\n {pastExpirationDeadline\n ? null\n : (\n <div\n className={\n classNames('d-flex flex-column align-items-md-center text-right justify-content-center', {\n 'col-md-4 mx-md-3': !shouldDisplayGatedContentTwoColumnsHalf, 'col-md-6': shouldDisplayGatedContentTwoColumnsHalf,\n })\n }\n >\n <UpgradeButton\n offer={offer}\n onClick={() => handleUpgradeClick(eventProperties, userId)}\n verifiedMode={verifiedMode}\n style={{ whiteSpace: shouldWrapTextOnButton ? 'nowrap' : null }}\n data-testid=\"upgrade-button\"\n />\n </div>\n )}\n </div>\n </Alert>\n );\n};\nExperimentalLockPaywall.propTypes = {\n courseId: PropTypes.string.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(ExperimentalLockPaywall);\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edx/frontend-plugin-advertisements",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "Frontend plugin for edX in course advertisements",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
"@openedx/frontend-build": "14.6.0",
|
|
52
52
|
"@testing-library/jest-dom": "^5.17.0",
|
|
53
53
|
"@testing-library/react": "^14.3.1",
|
|
54
|
+
"@testing-library/user-event": "^14.6.1",
|
|
54
55
|
"glob": "7.2.3",
|
|
55
56
|
"husky": "7.0.4",
|
|
56
57
|
"jest": "29.7.0",
|