@edx/frontend-plugin-advertisements 1.28.0 → 1.29.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/dist/data/index.js +0 -6
- package/dist/data/index.js.map +1 -1
- package/dist/data/optimizely.js +1 -9
- package/dist/data/optimizely.js.map +1 -1
- package/dist/generic/AccessExpirationDateBanner.js.map +1 -0
- package/dist/generic/ExpirationCountdown.js.map +1 -0
- package/dist/generic/PastExpirationCardContent.js.map +1 -0
- package/dist/generic/PastExpirationDateBanner.js.map +1 -0
- package/dist/generic/UpsellFBESoonCardContent.js.map +1 -0
- package/dist/{upgrade-notification/generic → generic}/UpsellFarAwayCardContent.js +1 -1
- package/dist/generic/UpsellFarAwayCardContent.js.map +1 -0
- package/dist/generic/index.js.map +1 -0
- package/dist/generic/upsell-bullets/ExperimentalUpsellBullets.js.map +1 -0
- package/dist/generic/upsell-bullets/ExperimentalUpsellTable.js.map +1 -0
- package/dist/generic/upsell-bullets/UpsellBullets.js.map +1 -0
- package/dist/generic/upsell-bullets/index.js.map +1 -0
- package/dist/generic/upsell-bullets/messages.js.map +1 -0
- package/dist/index.js +2 -17
- package/dist/index.js.map +1 -1
- package/dist/optimizely/utils.js +43 -0
- package/dist/optimizely/utils.js.map +1 -0
- package/dist/paywall/ExperimentalLockPaywall.js +1 -1
- package/dist/paywall/ExperimentalLockPaywall.js.map +1 -1
- package/dist/upgrade-modal/BaseModal.js +95 -0
- package/dist/upgrade-modal/BaseModal.js.map +1 -0
- package/dist/upgrade-modal/DefaultUpgradeModal.js +118 -27
- package/dist/upgrade-modal/DefaultUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js +132 -72
- package/dist/upgrade-modal/ExperimentalUpgradeModal.js.map +1 -1
- package/dist/upgrade-modal/NextUnitButton.js +58 -10
- package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
- package/dist/upgrade-modal/hooks.js +2 -2
- package/dist/upgrade-modal/hooks.js.map +1 -1
- package/dist/upgrade-modal/index.js +2 -9
- package/dist/upgrade-modal/index.js.map +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js +1 -1
- package/dist/upgrade-notification/DefaultUpgradeNotification.js.map +1 -1
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js +5 -35
- package/dist/upgrade-notification/ExperimentalUpgradeNotification.js.map +1 -1
- package/package.json +1 -1
- package/dist/upgrade-modal/UpgradeModal.js +0 -289
- package/dist/upgrade-modal/UpgradeModal.js.map +0 -1
- package/dist/upgrade-notification/generic/AccessExpirationDateBanner.js.map +0 -1
- package/dist/upgrade-notification/generic/ExpirationCountdown.js.map +0 -1
- package/dist/upgrade-notification/generic/PastExpirationCardContent.js.map +0 -1
- package/dist/upgrade-notification/generic/PastExpirationDateBanner.js.map +0 -1
- package/dist/upgrade-notification/generic/UpsellFBESoonCardContent.js.map +0 -1
- package/dist/upgrade-notification/generic/UpsellFarAwayCardContent.js.map +0 -1
- package/dist/upgrade-notification/generic/index.js.map +0 -1
- package/dist/upsell-bullets/ExperimentalUpsellBullets.js.map +0 -1
- package/dist/upsell-bullets/ExperimentalUpsellTable.js.map +0 -1
- package/dist/upsell-bullets/UpsellBullets.js.map +0 -1
- package/dist/upsell-bullets/index.js.map +0 -1
- package/dist/upsell-bullets/messages.js.map +0 -1
- /package/dist/{upgrade-notification/generic → generic}/AccessExpirationDateBanner.js +0 -0
- /package/dist/{upgrade-notification/generic → generic}/ExpirationCountdown.js +0 -0
- /package/dist/{upgrade-notification/generic → generic}/PastExpirationCardContent.js +0 -0
- /package/dist/{upgrade-notification/generic → generic}/PastExpirationDateBanner.js +0 -0
- /package/dist/{upgrade-notification/generic → generic}/UpsellFBESoonCardContent.js +0 -0
- /package/dist/{upgrade-notification/generic → generic}/index.js +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellBullets.js +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellTable.js +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/ExperimentalUpsellTable.scss +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/UpsellBullets.js +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/UpsellBullets.scss +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/index.js +0 -0
- /package/dist/{upsell-bullets → generic/upsell-bullets}/messages.js +0 -0
|
@@ -4,42 +4,133 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var
|
|
9
|
+
var _analytics = require("@edx/frontend-platform/analytics");
|
|
10
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
11
|
+
var _paragon = require("@openedx/paragon");
|
|
12
|
+
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
13
|
+
var _generic = require("../generic");
|
|
14
|
+
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
10
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
11
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
+
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); }
|
|
18
|
+
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; }
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
|
+
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 */
|
|
12
24
|
const DefaultUpgradeModal = _ref => {
|
|
13
25
|
let {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
26
|
+
isOpen,
|
|
27
|
+
close,
|
|
28
|
+
verifiedMode,
|
|
29
|
+
org,
|
|
30
|
+
courseId,
|
|
31
|
+
offer,
|
|
32
|
+
marketingUrl,
|
|
33
|
+
accessExpiration,
|
|
34
|
+
datesBannerInfo
|
|
21
35
|
} = _ref;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
const upsellPageName = 'course_sequence_modal';
|
|
37
|
+
const eventProperties = {
|
|
38
|
+
org_key: org,
|
|
39
|
+
courserun_key: courseId
|
|
40
|
+
};
|
|
41
|
+
const promotionEventProperties = _objectSpread({
|
|
42
|
+
creative: 'marketmodalupsell',
|
|
43
|
+
name: 'In-Course Verification Prompt',
|
|
44
|
+
position: 'marketing-modal-message',
|
|
45
|
+
promotion_id: 'courseware_verified_certificate_upsell'
|
|
46
|
+
}, eventProperties);
|
|
47
|
+
(0, _react.useEffect)(() => {
|
|
48
|
+
(0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);
|
|
49
|
+
(0, _analytics.sendTrackEvent)('Promotion Viewed', promotionEventProperties);
|
|
50
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
51
|
+
}, []);
|
|
52
|
+
const logClick = () => {
|
|
53
|
+
(0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);
|
|
54
|
+
(0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
55
|
+
location: 'marketing-modal-message'
|
|
56
|
+
}));
|
|
57
|
+
(0, _analytics.sendTrackEvent)('Promotion Clicked', promotionEventProperties);
|
|
58
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
59
|
+
linkCategory: 'green_upgrade',
|
|
60
|
+
linkName: `${upsellPageName}_green`,
|
|
61
|
+
linkType: 'button',
|
|
62
|
+
pageName: upsellPageName
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
65
|
+
const logClickPastExpiration = () => {
|
|
66
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
67
|
+
linkCategory: 'upgrade_modal',
|
|
68
|
+
linkName: `${upsellPageName}_course_details`,
|
|
69
|
+
linkType: 'button',
|
|
70
|
+
pageName: upsellPageName
|
|
71
|
+
}));
|
|
72
|
+
};
|
|
73
|
+
const intl = (0, _i18n.useIntl)();
|
|
74
|
+
const dateNow = Date.now();
|
|
75
|
+
const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
76
|
+
const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
|
|
77
|
+
const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
78
|
+
let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
79
|
+
offer: offer,
|
|
80
|
+
onClick: logClick,
|
|
81
|
+
verifiedMode: verifiedMode,
|
|
82
|
+
block: true
|
|
30
83
|
});
|
|
84
|
+
if (pastDeadline) {
|
|
85
|
+
callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
86
|
+
className: "w-100",
|
|
87
|
+
onClick: logClickPastExpiration,
|
|
88
|
+
href: marketingUrl,
|
|
89
|
+
children: intl.formatMessage({
|
|
90
|
+
id: 'learning.upgrade-modal.upgrade-button.label',
|
|
91
|
+
defaultMessage: 'View course details',
|
|
92
|
+
description: 'Label for upgrade button'
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseModal.default, {
|
|
97
|
+
variationKey: "off",
|
|
98
|
+
isOpen,
|
|
99
|
+
close,
|
|
100
|
+
courseId,
|
|
101
|
+
offer,
|
|
102
|
+
callToActionButton,
|
|
103
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_generic.UpsellFarAwayCardContent, {
|
|
104
|
+
isFBE: isFBE
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
DefaultUpgradeModal.defaultProps = {
|
|
109
|
+
verifiedMode: {},
|
|
110
|
+
offer: null,
|
|
111
|
+
accessExpiration: null,
|
|
112
|
+
datesBannerInfo: null
|
|
31
113
|
};
|
|
32
114
|
DefaultUpgradeModal.propTypes = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
115
|
+
verifiedMode: _propTypes.default.shape({
|
|
116
|
+
price: _propTypes.default.number.isRequired,
|
|
117
|
+
currencySymbol: _propTypes.default.string.isRequired,
|
|
118
|
+
upgradeUrl: _propTypes.default.string.isRequired
|
|
119
|
+
}),
|
|
120
|
+
offer: _propTypes.default.shape({
|
|
121
|
+
code: _propTypes.default.string
|
|
122
|
+
}),
|
|
123
|
+
accessExpiration: _propTypes.default.shape({
|
|
124
|
+
upgradeDeadline: _propTypes.default.string
|
|
125
|
+
}),
|
|
126
|
+
datesBannerInfo: _propTypes.default.shape({
|
|
127
|
+
contentTypeGatingEnabled: _propTypes.default.bool
|
|
128
|
+
}),
|
|
129
|
+
marketingUrl: _propTypes.default.string.isRequired,
|
|
130
|
+
org: _propTypes.default.string.isRequired,
|
|
131
|
+
courseId: _propTypes.default.string.isRequired,
|
|
132
|
+
close: _propTypes.default.func.isRequired,
|
|
133
|
+
isOpen: _propTypes.default.bool.isRequired
|
|
43
134
|
};
|
|
44
135
|
var _default = exports.default = DefaultUpgradeModal;
|
|
45
136
|
//# sourceMappingURL=DefaultUpgradeModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_NextUnitButton","_jsxRuntime","obj","__esModule","default","DefaultUpgradeModal","_ref","disabled","buttonText","nextLink","sequenceId","unitId","handleNavigate","nextSequenceHandler","jsx","propTypes","PropTypes","bool","isRequired","string","nextArrow","func","shouldDisplayNotificationTriggerInSequence","linkComponent","node","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport NextUnitButton from './NextUnitButton';\n\nconst DefaultUpgradeModal = ({\n disabled,\n buttonText,\n nextLink,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n}) => (\n <NextUnitButton\n {...{\n disabled,\n buttonText,\n nextLink,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n }}\n />\n);\n\nDefaultUpgradeModal.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextArrow: PropTypes.func.isRequired,\n nextLink: PropTypes.string.isRequired,\n shouldDisplayNotificationTriggerInSequence: PropTypes.bool.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n handleNavigate: PropTypes.func.isRequired,\n linkComponent: PropTypes.node.isRequired,\n nextSequenceHandler: PropTypes.func.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,eAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA8C,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9C,MAAMG,mBAAmB,GAAGC,IAAA;EAAA,IAAC;IAC3BC,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,cAAc;IACdC;EACF,CAAC,GAAAP,IAAA;EAAA,oBACC,IAAAL,WAAA,CAAAa,GAAA,EAACd,eAAA,CAAAI,OAAc;IAEXG,QAAQ;IACRC,UAAU;IACVC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNE,mBAAmB;IACnBD;EAAc,CAEjB,CAAC;AAAA,CACH;AAEDP,mBAAmB,CAACU,SAAS,GAAG;EAC9BR,QAAQ,EAAES,kBAAS,CAACC,IAAI,CAACC,UAAU;EACnCV,UAAU,EAAEQ,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCE,SAAS,EAAEJ,kBAAS,CAACK,IAAI,CAACH,UAAU;EACpCT,QAAQ,EAAEO,kBAAS,CAACG,MAAM,CAACD,UAAU;EACrCI,0CAA0C,EAAEN,kBAAS,CAACC,IAAI,CAACC,UAAU;EACrER,UAAU,EAAEM,kBAAS,CAACG,MAAM,CAACD,UAAU;EACvCP,MAAM,EAAEK,kBAAS,CAACG,MAAM,CAACD,UAAU;EACnCN,cAAc,EAAEI,kBAAS,CAACK,IAAI,CAACH,UAAU;EACzCK,aAAa,EAAEP,kBAAS,CAACQ,IAAI,CAACN,UAAU;EACxCL,mBAAmB,EAAEG,kBAAS,CAACK,IAAI,CAACH;AACtC,CAAC;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEaC,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DefaultUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","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","key","value","_toPropertyKey","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","DefaultUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","variationKey","UpsellFarAwayCardContent","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/DefaultUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport { UpsellFarAwayCardContent } from '../generic';\nimport BaseModal from './BaseModal';\n\nconst DefaultUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n}) => {\n const upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n };\n\n useEffect(() => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketmodalupsell.displayed', eventProperties);\n sendTrackEvent('Promotion Viewed', promotionEventProperties);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n return (\n <BaseModal\n variationKey=\"off\"\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n }}\n >\n <UpsellFarAwayCardContent isFBE={isFBE} />\n </BaseModal>\n );\n};\n\nDefaultUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nDefaultUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n};\n\nexport default DefaultUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,91 +4,151 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
9
|
+
var _reactSdk = require("@optimizely/react-sdk");
|
|
10
|
+
var _analytics = require("@edx/frontend-platform/analytics");
|
|
11
|
+
var _i18n = require("@edx/frontend-platform/i18n");
|
|
12
|
+
var _paragon = require("@openedx/paragon");
|
|
13
|
+
var _upgradeButton = require("@src/generic/upgrade-button");
|
|
14
|
+
var _utils = _interopRequireDefault(require("../optimizely/utils"));
|
|
15
|
+
var _data = require("../data");
|
|
16
|
+
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
13
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
-
function
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
21
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
22
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
23
|
+
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 */
|
|
19
24
|
const ExperimentalUpgradeModal = _ref => {
|
|
20
25
|
let {
|
|
21
|
-
courseId,
|
|
22
|
-
disabled,
|
|
23
|
-
buttonText,
|
|
24
|
-
sequenceId,
|
|
25
|
-
unitId,
|
|
26
|
-
nextSequenceHandler,
|
|
27
|
-
handleNavigate,
|
|
28
|
-
nextLink,
|
|
29
26
|
isOpen,
|
|
30
|
-
|
|
31
|
-
close
|
|
32
|
-
} = _ref;
|
|
33
|
-
const {
|
|
27
|
+
close,
|
|
34
28
|
verifiedMode,
|
|
35
|
-
org
|
|
36
|
-
|
|
37
|
-
const {
|
|
29
|
+
org,
|
|
30
|
+
courseId,
|
|
38
31
|
offer,
|
|
39
32
|
marketingUrl,
|
|
40
|
-
accessExpiration
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
33
|
+
accessExpiration,
|
|
34
|
+
datesBannerInfo,
|
|
35
|
+
optimizely
|
|
36
|
+
} = _ref;
|
|
37
|
+
const {
|
|
38
|
+
KEY: experimentKey,
|
|
39
|
+
ACTION
|
|
40
|
+
} = _data.OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT;
|
|
41
|
+
const [decision] = (0, _reactSdk.useDecision)(experimentKey);
|
|
42
|
+
const {
|
|
43
|
+
variationKey,
|
|
44
|
+
enabled
|
|
45
|
+
} = decision;
|
|
46
|
+
|
|
47
|
+
// Experiment specific properties or data should not be sent to the tracking logs, so break this
|
|
48
|
+
// object out to ensure it is only sent to Segment and not the tracking logs.
|
|
49
|
+
const experimentProperties = {
|
|
50
|
+
experiment_key: experimentKey,
|
|
51
|
+
variation_key: variationKey
|
|
52
|
+
};
|
|
53
|
+
const upsellPageName = 'course_sequence_modal';
|
|
54
|
+
const eventProperties = {
|
|
55
|
+
org_key: org,
|
|
56
|
+
courserun_key: courseId
|
|
51
57
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
58
|
+
const promotionEventProperties = _objectSpread(_objectSpread({
|
|
59
|
+
creative: 'marketmodalupsell',
|
|
60
|
+
name: 'In-Course Verification Prompt',
|
|
61
|
+
position: 'marketing-modal-message',
|
|
62
|
+
promotion_id: 'courseware_verified_certificate_upsell'
|
|
63
|
+
}, eventProperties), experimentProperties);
|
|
64
|
+
const logClick = () => {
|
|
65
|
+
(0, _analytics.sendTrackingLogEvent)('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);
|
|
66
|
+
(0, _analytics.sendTrackingLogEvent)('edx.course.enrollment.upgrade.clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
67
|
+
location: 'marketing-modal-message'
|
|
68
|
+
}));
|
|
69
|
+
(0, _analytics.sendTrackEvent)('Promotion Clicked', promotionEventProperties);
|
|
70
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
|
|
71
|
+
linkCategory: 'green_upgrade',
|
|
72
|
+
linkName: `${upsellPageName}_green`,
|
|
73
|
+
linkType: 'button',
|
|
74
|
+
pageName: upsellPageName
|
|
75
|
+
}));
|
|
76
|
+
optimizely.track(ACTION);
|
|
77
|
+
};
|
|
78
|
+
const logClickPastExpiration = () => {
|
|
79
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread(_objectSpread({}, eventProperties), experimentProperties), {}, {
|
|
80
|
+
linkCategory: 'upgrade_modal',
|
|
81
|
+
linkName: `${upsellPageName}_course_details`,
|
|
82
|
+
linkType: 'button',
|
|
83
|
+
pageName: upsellPageName
|
|
84
|
+
}));
|
|
85
|
+
};
|
|
86
|
+
const intl = (0, _i18n.useIntl)();
|
|
87
|
+
const dateNow = Date.now();
|
|
88
|
+
const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
89
|
+
const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
|
|
90
|
+
const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
91
|
+
const upsellMessage = (0, _utils.default)({
|
|
92
|
+
enabled,
|
|
93
|
+
variationKey,
|
|
94
|
+
isFBE
|
|
95
|
+
});
|
|
96
|
+
let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
97
|
+
offer: offer,
|
|
98
|
+
onClick: logClick,
|
|
99
|
+
verifiedMode: verifiedMode,
|
|
100
|
+
block: true
|
|
101
|
+
});
|
|
102
|
+
if (pastDeadline) {
|
|
103
|
+
callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_paragon.Button, {
|
|
104
|
+
className: "w-100",
|
|
105
|
+
onClick: logClickPastExpiration,
|
|
106
|
+
href: marketingUrl,
|
|
107
|
+
children: intl.formatMessage({
|
|
108
|
+
id: 'learning.upgrade-modal.upgrade-button.label',
|
|
109
|
+
defaultMessage: 'View course details',
|
|
110
|
+
description: 'Label for upgrade button'
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BaseModal.default, {
|
|
115
|
+
isOpen,
|
|
116
|
+
close,
|
|
117
|
+
courseId,
|
|
118
|
+
offer,
|
|
119
|
+
callToActionButton,
|
|
120
|
+
variationKey,
|
|
121
|
+
children: upsellMessage
|
|
75
122
|
});
|
|
76
123
|
};
|
|
124
|
+
ExperimentalUpgradeModal.defaultProps = {
|
|
125
|
+
verifiedMode: {},
|
|
126
|
+
offer: null,
|
|
127
|
+
accessExpiration: null,
|
|
128
|
+
datesBannerInfo: null
|
|
129
|
+
};
|
|
77
130
|
ExperimentalUpgradeModal.propTypes = {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
131
|
+
verifiedMode: _propTypes.default.shape({
|
|
132
|
+
price: _propTypes.default.number.isRequired,
|
|
133
|
+
currencySymbol: _propTypes.default.string.isRequired,
|
|
134
|
+
upgradeUrl: _propTypes.default.string.isRequired
|
|
135
|
+
}),
|
|
136
|
+
offer: _propTypes.default.shape({
|
|
137
|
+
code: _propTypes.default.string
|
|
138
|
+
}),
|
|
139
|
+
accessExpiration: _propTypes.default.shape({
|
|
140
|
+
upgradeDeadline: _propTypes.default.string
|
|
141
|
+
}),
|
|
142
|
+
datesBannerInfo: _propTypes.default.shape({
|
|
143
|
+
contentTypeGatingEnabled: _propTypes.default.bool
|
|
144
|
+
}),
|
|
145
|
+
marketingUrl: _propTypes.default.string.isRequired,
|
|
146
|
+
org: _propTypes.default.string.isRequired,
|
|
147
|
+
courseId: _propTypes.default.string.isRequired,
|
|
90
148
|
close: _propTypes.default.func.isRequired,
|
|
91
|
-
|
|
149
|
+
isOpen: _propTypes.default.bool.isRequired,
|
|
150
|
+
/* eslint-disable-next-line react/forbid-prop-types */
|
|
151
|
+
optimizely: _propTypes.default.object.isRequired
|
|
92
152
|
};
|
|
93
|
-
var _default = exports.default = ExperimentalUpgradeModal;
|
|
153
|
+
var _default = exports.default = (0, _reactSdk.withOptimizely)(ExperimentalUpgradeModal);
|
|
94
154
|
//# sourceMappingURL=ExperimentalUpgradeModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_modelStore","_UpgradeModal","_NextUnitButton","_hooks","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ExperimentalUpgradeModal","_ref","courseId","disabled","buttonText","sequenceId","unitId","nextSequenceHandler","handleNavigate","nextLink","isOpen","open","close","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","isExperimentEnabled","useIsModalExperimentEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","jsxs","Fragment","children","jsx","propTypes","PropTypes","bool","isRequired","string","nextArrow","func","shouldDisplayNotificationTriggerInSequence","linkComponent","node","_default","exports"],"sources":["../../src/upgrade-modal/ExperimentalUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useModel } from '@src/generic/model-store';\nimport UpgradeModal from './UpgradeModal';\nimport NextUnitButton from './NextUnitButton';\nimport { useInCourseUpgradeModal, useIsModalExperimentEnabled } from './hooks';\n\nconst ExperimentalUpgradeModal = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n nextLink,\n isOpen,\n open,\n close,\n}) => {\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n } = useModel('coursewareMeta', courseId);\n\n const isExperimentEnabled = useIsModalExperimentEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isExperimentEnabled) {\n countNextClick();\n if (shouldShowModalOnClick) {\n open();\n }\n }\n };\n\n useEffect(() => {\n handleModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sequenceId]);\n\n return (\n <>\n <NextUnitButton\n {...{\n disabled,\n buttonText,\n sequenceId,\n unitId,\n nextSequenceHandler,\n handleNavigate,\n nextLink,\n }}\n />\n\n {isOpen && (\n <UpgradeModal\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n }}\n />\n )}\n </>\n );\n};\n\nExperimentalUpgradeModal.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextArrow: PropTypes.func.isRequired,\n nextLink: PropTypes.string.isRequired,\n shouldDisplayNotificationTriggerInSequence: PropTypes.bool.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n handleNavigate: PropTypes.func.isRequired,\n nextSequenceHandler: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n open: PropTypes.func.isRequired,\n linkComponent: PropTypes.node.isRequired,\n close: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default ExperimentalUpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ExperimentalUpgradeModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactSdk","_analytics","_i18n","_paragon","_upgradeButton","_utils","_data","_BaseModal","_jsxRuntime","obj","__esModule","default","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","key","value","_toPropertyKey","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","ExperimentalUpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","optimizely","KEY","experimentKey","ACTION","OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT","decision","useDecision","variationKey","enabled","experimentProperties","experiment_key","variation_key","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","logClick","sendTrackingLogEvent","location","sendTrackEvent","linkCategory","linkName","linkType","pageName","track","logClickPastExpiration","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","upsellMessage","getBulletVariation","callToActionButton","jsx","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","object","_default","exports","withOptimizely"],"sources":["../../src/upgrade-modal/ExperimentalUpgradeModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDecision, withOptimizely } from '@optimizely/react-sdk';\nimport { sendTrackEvent, sendTrackingLogEvent } from '@edx/frontend-platform/analytics';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport { UpgradeButton } from '@src/generic/upgrade-button';\nimport getBulletVariation from '../optimizely/utils';\nimport { OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT } from '../data';\nimport BaseModal from './BaseModal';\n\nconst ExperimentalUpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n optimizely,\n}) => {\n const { KEY: experimentKey, ACTION } = OPTIMIZELY_VTR_SIDEBAR_EXPERIMENT;\n\n const [decision] = useDecision(experimentKey);\n const { variationKey, enabled } = decision;\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 upsellPageName = 'course_sequence_modal';\n const eventProperties = {\n org_key: org,\n courserun_key: courseId,\n };\n const promotionEventProperties = {\n creative: 'marketmodalupsell',\n name: 'In-Course Verification Prompt',\n position: 'marketing-modal-message',\n promotion_id: 'courseware_verified_certificate_upsell',\n ...eventProperties,\n ...experimentProperties,\n };\n\n const logClick = () => {\n sendTrackingLogEvent('edx.bi.course.upgrade.marketingmodal.clicked', eventProperties);\n sendTrackingLogEvent('edx.course.enrollment.upgrade.clicked', {\n ...eventProperties,\n location: 'marketing-modal-message',\n });\n sendTrackEvent('Promotion Clicked', promotionEventProperties);\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'green_upgrade',\n linkName: `${upsellPageName}_green`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n optimizely.track(ACTION);\n };\n const logClickPastExpiration = () => {\n sendTrackEvent('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', {\n ...eventProperties,\n ...experimentProperties,\n linkCategory: 'upgrade_modal',\n linkName: `${upsellPageName}_course_details`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n };\n\n const intl = useIntl();\n const dateNow = Date.now();\n const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;\n const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;\n const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;\n const upsellMessage = getBulletVariation({ enabled, variationKey, isFBE });\n\n let callToActionButton = (\n <UpgradeButton\n offer={offer}\n onClick={logClick}\n verifiedMode={verifiedMode}\n block\n />\n );\n\n if (pastDeadline) {\n callToActionButton = (\n <Button\n className=\"w-100\"\n onClick={logClickPastExpiration}\n href={marketingUrl}\n >\n {intl.formatMessage(\n {\n id: 'learning.upgrade-modal.upgrade-button.label',\n defaultMessage: 'View course details',\n description: 'Label for upgrade button',\n },\n )}\n </Button>\n );\n }\n\n return (\n <BaseModal\n {...{\n isOpen,\n close,\n courseId,\n offer,\n callToActionButton,\n variationKey,\n }}\n >\n {upsellMessage}\n </BaseModal>\n );\n};\n\nExperimentalUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nExperimentalUpgradeModal.propTypes = {\n verifiedMode: PropTypes.shape({\n price: PropTypes.number.isRequired,\n currencySymbol: PropTypes.string.isRequired,\n upgradeUrl: PropTypes.string.isRequired,\n }),\n offer: PropTypes.shape({\n code: PropTypes.string,\n }),\n accessExpiration: PropTypes.shape({\n upgradeDeadline: PropTypes.string,\n }),\n datesBannerInfo: PropTypes.shape({\n contentTypeGatingEnabled: PropTypes.bool,\n }),\n marketingUrl: PropTypes.string.isRequired,\n org: PropTypes.string.isRequired,\n courseId: PropTypes.string.isRequired,\n close: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n /* eslint-disable-next-line react/forbid-prop-types */\n optimizely: PropTypes.object.isRequired,\n};\n\nexport default withOptimizely(ExperimentalUpgradeModal);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,25 +4,57 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
9
|
var _modelStore = require("@src/generic/model-store");
|
|
10
10
|
var _NextButton = _interopRequireDefault(require("@src/courseware/course/sequence/sequence-navigation/generic/NextButton"));
|
|
11
|
+
var _hooks = require("./hooks");
|
|
12
|
+
var _UpgradeModalWrapper = _interopRequireDefault(require("./UpgradeModalWrapper"));
|
|
11
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
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); }
|
|
16
|
+
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; }
|
|
13
17
|
/* eslint import/no-unresolved: 0 */
|
|
14
18
|
|
|
15
19
|
const NextUnitButton = _ref => {
|
|
16
20
|
let {
|
|
21
|
+
courseId,
|
|
17
22
|
disabled,
|
|
18
23
|
buttonText,
|
|
19
24
|
sequenceId,
|
|
20
25
|
unitId,
|
|
21
26
|
handleNavigate,
|
|
22
27
|
nextSequenceHandler,
|
|
23
|
-
nextLink
|
|
28
|
+
nextLink,
|
|
29
|
+
isOpen,
|
|
30
|
+
open,
|
|
31
|
+
close
|
|
24
32
|
} = _ref;
|
|
25
33
|
const sequence = (0, _modelStore.useModel)('sequences', sequenceId);
|
|
34
|
+
const {
|
|
35
|
+
verifiedMode,
|
|
36
|
+
org
|
|
37
|
+
} = (0, _modelStore.useModel)('courseHomeMeta', courseId);
|
|
38
|
+
const {
|
|
39
|
+
offer,
|
|
40
|
+
marketingUrl,
|
|
41
|
+
accessExpiration,
|
|
42
|
+
datesBannerInfo
|
|
43
|
+
} = (0, _modelStore.useModel)('coursewareMeta', courseId);
|
|
44
|
+
const isEnabled = (0, _hooks.useIsModalEnabled)(courseId);
|
|
45
|
+
const [shouldShowModalOnClick, countNextClick] = (0, _hooks.useInCourseUpgradeModal)();
|
|
46
|
+
const handleModal = () => {
|
|
47
|
+
if (isEnabled) {
|
|
48
|
+
countNextClick();
|
|
49
|
+
if (shouldShowModalOnClick) {
|
|
50
|
+
open();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
(0, _react.useEffect)(() => {
|
|
55
|
+
handleModal();
|
|
56
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
|
+
}, [sequenceId]);
|
|
26
58
|
const handleNext = () => {
|
|
27
59
|
const nextIndex = sequence.unitIds.indexOf(unitId) + 1;
|
|
28
60
|
const newUnitId = sequence.unitIds[nextIndex];
|
|
@@ -31,13 +63,25 @@ const NextUnitButton = _ref => {
|
|
|
31
63
|
nextSequenceHandler();
|
|
32
64
|
}
|
|
33
65
|
};
|
|
34
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
66
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
67
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NextButton.default, {
|
|
68
|
+
onClick: handleNext,
|
|
69
|
+
nextLink: nextLink,
|
|
70
|
+
variant: "link",
|
|
71
|
+
buttonStyle: "next-btn",
|
|
72
|
+
buttonLabel: buttonText,
|
|
73
|
+
disabled: disabled
|
|
74
|
+
}), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModalWrapper.default, {
|
|
75
|
+
isOpen,
|
|
76
|
+
close,
|
|
77
|
+
verifiedMode,
|
|
78
|
+
org,
|
|
79
|
+
courseId,
|
|
80
|
+
offer,
|
|
81
|
+
marketingUrl,
|
|
82
|
+
accessExpiration,
|
|
83
|
+
datesBannerInfo
|
|
84
|
+
})]
|
|
41
85
|
});
|
|
42
86
|
};
|
|
43
87
|
NextUnitButton.propTypes = {
|
|
@@ -47,7 +91,11 @@ NextUnitButton.propTypes = {
|
|
|
47
91
|
sequenceId: _propTypes.default.string.isRequired,
|
|
48
92
|
unitId: _propTypes.default.string.isRequired,
|
|
49
93
|
handleNavigate: _propTypes.default.func.isRequired,
|
|
50
|
-
nextSequenceHandler: _propTypes.default.func.isRequired
|
|
94
|
+
nextSequenceHandler: _propTypes.default.func.isRequired,
|
|
95
|
+
isOpen: _propTypes.default.bool.isRequired,
|
|
96
|
+
close: _propTypes.default.func.isRequired,
|
|
97
|
+
open: _propTypes.default.func.isRequired,
|
|
98
|
+
courseId: _propTypes.default.string.isRequired
|
|
51
99
|
};
|
|
52
100
|
var _default = exports.default = NextUnitButton;
|
|
53
101
|
//# sourceMappingURL=NextUnitButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextUnitButton.js","names":["_react","
|
|
1
|
+
{"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_modelStore","_NextButton","_hooks","_UpgradeModalWrapper","_jsxRuntime","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NextUnitButton","_ref","courseId","disabled","buttonText","sequenceId","unitId","handleNavigate","nextSequenceHandler","nextLink","isOpen","open","close","sequence","useModel","verifiedMode","org","offer","marketingUrl","accessExpiration","datesBannerInfo","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","handleNext","nextIndex","unitIds","indexOf","newUnitId","length","jsxs","Fragment","children","jsx","onClick","variant","buttonStyle","buttonLabel","propTypes","PropTypes","bool","isRequired","string","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { useModel } from '@src/generic/model-store';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModalWrapper from './UpgradeModalWrapper';\n\nconst NextUnitButton = ({\n courseId,\n disabled,\n buttonText,\n sequenceId,\n unitId,\n handleNavigate,\n nextSequenceHandler,\n nextLink,\n isOpen,\n open,\n close,\n}) => {\n const sequence = useModel('sequences', sequenceId);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n } = useModel('coursewareMeta', courseId);\n\n const isEnabled = useIsModalEnabled(courseId);\n const [shouldShowModalOnClick, countNextClick] = useInCourseUpgradeModal();\n\n const handleModal = () => {\n if (isEnabled) {\n countNextClick();\n if (shouldShowModalOnClick) {\n open();\n }\n }\n };\n\n useEffect(() => {\n handleModal();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sequenceId]);\n\n const handleNext = () => {\n const nextIndex = sequence.unitIds.indexOf(unitId) + 1;\n const newUnitId = sequence.unitIds[nextIndex];\n handleNavigate(newUnitId);\n\n if (nextIndex >= sequence.unitIds.length) {\n nextSequenceHandler();\n }\n };\n\n return (\n <>\n <NextButton\n onClick={handleNext}\n nextLink={nextLink}\n variant=\"link\"\n buttonStyle=\"next-btn\"\n buttonLabel={buttonText}\n disabled={disabled}\n />\n {isOpen && (\n <UpgradeModalWrapper\n {...{\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n }}\n />\n )}\n </>\n );\n};\n\nNextUnitButton.propTypes = {\n disabled: PropTypes.bool.isRequired,\n buttonText: PropTypes.string.isRequired,\n nextLink: PropTypes.string.isRequired,\n sequenceId: PropTypes.string.isRequired,\n unitId: PropTypes.string.isRequired,\n handleNavigate: PropTypes.func.isRequired,\n nextSequenceHandler: PropTypes.func.isRequired,\n isOpen: PropTypes.bool.isRequired,\n close: PropTypes.func.isRequired,\n open: PropTypes.func.isRequired,\n courseId: PropTypes.string.isRequired,\n};\n\nexport default NextUnitButton;\n"],"mappings":"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","ignoreList":[]}
|