@edx/frontend-plugin-advertisements 2.30.0 → 2.30.1
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/subscription-upsell/SubscriptionBenefitsModal.js +1 -1
- package/dist/subscription-upsell/SubscriptionBenefitsModal.js.map +1 -1
- package/dist/upgrade-modal/NextUnitButton.js +7 -1
- package/dist/upgrade-modal/NextUnitButton.js.map +1 -1
- package/dist/upgrade-modal/UpgradeModal.js +24 -0
- package/dist/upgrade-modal/UpgradeModal.js.map +1 -1
- package/package.json +1 -1
|
@@ -22,7 +22,7 @@ const BENEFITS_MODAL_VARIANT = exports.BENEFITS_MODAL_VARIANT = {
|
|
|
22
22
|
LAUNCH: 'launch'
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
/** The benefits pop-up (Figma 3339-7937 free trial, 3482-70647 launch).
|
|
25
|
+
/** The benefits pop-up (Figma 3339-7937 free trial, 3482-70647 launch). UpgradeModal opens the free trial one. */
|
|
26
26
|
const SubscriptionBenefitsModal = _ref => {
|
|
27
27
|
let {
|
|
28
28
|
courseId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionBenefitsModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_icons","_certificatePreview","_useSubscriptionOffer","_messages","_jsxRuntime","e","__esModule","default","BENEFITS_MODAL_VARIANT","exports","FREE_TRIAL","LAUNCH","SubscriptionBenefitsModal","_ref","courseId","isOpen","onClose","variant","onSubscribeClick","onPurchaseClick","formatMessage","useIntl","offer","useSubscriptionOffer","canSubscribe","hasTrial","purchaseUrl","canPurchase","coursePrice","isFreeTrial","title","messages","modalTitleFreeTrial","modalTitleLaunch","trialBenefit","key","benefitTrialTitle","body","benefitTrialBody","benefits","benefitCertificatesTitle","benefitCertificatesBody","benefitChangeCourseTitle","benefitChangeCourseBodyFreeTrial","benefitChangeCourseBody","filter","Boolean","purchaseButton","jsx","Button","as","href","className","onClick","children","earnCertificateFor","price","purchaseNoPrice","subscribeButton","subscribeUrl","continueToCheckout","jsxs","ModalDialog","size","hasCloseButton","isFullscreenOnMobile","isOverflowVisible","Hero","Content","bgColor","Header","brand","Title","modalSubtitle","Body","map","benefit","Icon","src","Check","CheckCircleOutline","Footer","ActionRow","propTypes","PropTypes","string","isRequired","bool","func","oneOf","Object","values","defaultProps","undefined","_default"],"sources":["../../src/subscription-upsell/SubscriptionBenefitsModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow, Button, Icon, ModalDialog,\n} from '@openedx/paragon';\nimport { Check, CheckCircleOutline } from '@openedx/paragon/icons';\n\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\nimport useSubscriptionOffer from './useSubscriptionOffer';\nimport messages from './messages';\nimport './SubscriptionBenefitsModal.scss';\n\nexport const BENEFITS_MODAL_VARIANT = {\n FREE_TRIAL: 'freeTrial',\n LAUNCH: 'launch',\n};\n\n/** The benefits pop-up (Figma 3339-7937 free trial, 3482-70647 launch). Nothing opens it yet. */\nconst SubscriptionBenefitsModal = ({\n courseId,\n isOpen,\n onClose,\n variant,\n onSubscribeClick,\n onPurchaseClick,\n}) => {\n const { formatMessage } = useIntl();\n const offer = useSubscriptionOffer(courseId);\n\n if (!offer || !offer.canSubscribe) {\n return null;\n }\n\n const {\n hasTrial, purchaseUrl, canPurchase, coursePrice,\n } = offer;\n const isFreeTrial = variant === BENEFITS_MODAL_VARIANT.FREE_TRIAL && hasTrial;\n const title = formatMessage(isFreeTrial ? messages.modalTitleFreeTrial : messages.modalTitleLaunch);\n\n const trialBenefit = hasTrial && {\n key: 'trial',\n title: formatMessage(messages.benefitTrialTitle),\n body: formatMessage(messages.benefitTrialBody),\n };\n // Figma: the free trial pop-up leads with the trial; the launch pop-up ends with it.\n const benefits = [\n isFreeTrial && trialBenefit,\n {\n key: 'certificates',\n title: formatMessage(messages.benefitCertificatesTitle),\n body: formatMessage(messages.benefitCertificatesBody),\n },\n {\n key: 'change-course',\n title: formatMessage(messages.benefitChangeCourseTitle),\n body: formatMessage(isFreeTrial ? messages.benefitChangeCourseBodyFreeTrial : messages.benefitChangeCourseBody),\n },\n !isFreeTrial && trialBenefit,\n ].filter(Boolean);\n\n const purchaseButton = canPurchase && (\n <Button\n as=\"a\"\n href={purchaseUrl}\n variant=\"outline-brand\"\n className={isFreeTrial ? 'rounded-pill w-100 mt-2' : 'rounded-pill'}\n onClick={onPurchaseClick}\n data-testid=\"subscription-modal-purchase-button\"\n >\n {coursePrice\n ? formatMessage(messages.earnCertificateFor, { price: coursePrice })\n : formatMessage(messages.purchaseNoPrice)}\n </Button>\n );\n const subscribeButton = (\n <Button\n as=\"a\"\n href={offer.subscribeUrl}\n variant=\"brand\"\n className={isFreeTrial ? 'rounded-pill w-100' : 'rounded-pill'}\n onClick={onSubscribeClick}\n data-testid=\"subscription-modal-subscribe-button\"\n >\n {formatMessage(messages.continueToCheckout)}\n </Button>\n );\n\n return (\n <ModalDialog\n title={title}\n isOpen={isOpen}\n onClose={onClose}\n size={isFreeTrial ? 'md' : 'lg'}\n variant={isFreeTrial ? 'dark' : 'default'} // dark inverts the close button over the certificate hero\n hasCloseButton\n isFullscreenOnMobile\n isOverflowVisible={false}\n className={`subscription-benefits-modal subscription-benefits-modal--${isFreeTrial ? 'free-trial' : 'launch'}`}\n >\n {isFreeTrial && (\n <ModalDialog.Hero data-testid=\"subscription-modal-certificate\">\n {/* As BaseModal does: the dark variant paints hero text white, so pin the certificate text dark. */}\n <ModalDialog.Hero.Content className=\"m-0 text-primary-500\">\n <CertificatePreview courseId={courseId} bgColor=\"bg-white\" />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n <ModalDialog.Header>\n {!isFreeTrial && (\n <p className=\"font-weight-bold mb-2\" data-testid=\"subscription-modal-brand\">{formatMessage(messages.brand)}</p>\n )}\n <ModalDialog.Title as=\"h2\">{title}</ModalDialog.Title>\n <p className=\"mt-2 mb-0\">{formatMessage(messages.modalSubtitle)}</p>\n </ModalDialog.Header>\n <ModalDialog.Body>\n <ul className={isFreeTrial ? 'list-unstyled mb-0' : 'list-unstyled bg-white rounded p-4 mb-0'}>\n {benefits.map((benefit) => (\n <li key={benefit.key} className=\"d-flex mb-3\" data-testid={`subscription-modal-benefit-${benefit.key}`}>\n <Icon src={isFreeTrial ? Check : CheckCircleOutline} className=\"mr-2 flex-shrink-0\" />\n <div>\n <div className=\"font-weight-bold\">{benefit.title}</div>\n <div>{benefit.body}</div>\n </div>\n </li>\n ))}\n </ul>\n </ModalDialog.Body>\n {isFreeTrial ? (\n <ModalDialog.Footer className=\"flex-column\">\n {subscribeButton}\n {purchaseButton}\n </ModalDialog.Footer>\n ) : (\n <ModalDialog.Footer>\n <ActionRow>\n {purchaseButton}\n {subscribeButton}\n </ActionRow>\n </ModalDialog.Footer>\n )}\n </ModalDialog>\n );\n};\n\nSubscriptionBenefitsModal.propTypes = {\n courseId: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(Object.values(BENEFITS_MODAL_VARIANT)),\n onSubscribeClick: PropTypes.func,\n onPurchaseClick: PropTypes.func,\n};\n\nSubscriptionBenefitsModal.defaultProps = {\n variant: BENEFITS_MODAL_VARIANT.LAUNCH,\n onSubscribeClick: undefined,\n onPurchaseClick: undefined,\n};\n\nexport default SubscriptionBenefitsModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SubscriptionBenefitsModal.js","names":["_react","_interopRequireDefault","require","_propTypes","_i18n","_paragon","_icons","_certificatePreview","_useSubscriptionOffer","_messages","_jsxRuntime","e","__esModule","default","BENEFITS_MODAL_VARIANT","exports","FREE_TRIAL","LAUNCH","SubscriptionBenefitsModal","_ref","courseId","isOpen","onClose","variant","onSubscribeClick","onPurchaseClick","formatMessage","useIntl","offer","useSubscriptionOffer","canSubscribe","hasTrial","purchaseUrl","canPurchase","coursePrice","isFreeTrial","title","messages","modalTitleFreeTrial","modalTitleLaunch","trialBenefit","key","benefitTrialTitle","body","benefitTrialBody","benefits","benefitCertificatesTitle","benefitCertificatesBody","benefitChangeCourseTitle","benefitChangeCourseBodyFreeTrial","benefitChangeCourseBody","filter","Boolean","purchaseButton","jsx","Button","as","href","className","onClick","children","earnCertificateFor","price","purchaseNoPrice","subscribeButton","subscribeUrl","continueToCheckout","jsxs","ModalDialog","size","hasCloseButton","isFullscreenOnMobile","isOverflowVisible","Hero","Content","bgColor","Header","brand","Title","modalSubtitle","Body","map","benefit","Icon","src","Check","CheckCircleOutline","Footer","ActionRow","propTypes","PropTypes","string","isRequired","bool","func","oneOf","Object","values","defaultProps","undefined","_default"],"sources":["../../src/subscription-upsell/SubscriptionBenefitsModal.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from '@edx/frontend-platform/i18n';\nimport {\n ActionRow, Button, Icon, ModalDialog,\n} from '@openedx/paragon';\nimport { Check, CheckCircleOutline } from '@openedx/paragon/icons';\n\nimport CertificatePreview from '../upgrade-notification/certificate-preview';\nimport useSubscriptionOffer from './useSubscriptionOffer';\nimport messages from './messages';\nimport './SubscriptionBenefitsModal.scss';\n\nexport const BENEFITS_MODAL_VARIANT = {\n FREE_TRIAL: 'freeTrial',\n LAUNCH: 'launch',\n};\n\n/** The benefits pop-up (Figma 3339-7937 free trial, 3482-70647 launch). UpgradeModal opens the free trial one. */\nconst SubscriptionBenefitsModal = ({\n courseId,\n isOpen,\n onClose,\n variant,\n onSubscribeClick,\n onPurchaseClick,\n}) => {\n const { formatMessage } = useIntl();\n const offer = useSubscriptionOffer(courseId);\n\n if (!offer || !offer.canSubscribe) {\n return null;\n }\n\n const {\n hasTrial, purchaseUrl, canPurchase, coursePrice,\n } = offer;\n const isFreeTrial = variant === BENEFITS_MODAL_VARIANT.FREE_TRIAL && hasTrial;\n const title = formatMessage(isFreeTrial ? messages.modalTitleFreeTrial : messages.modalTitleLaunch);\n\n const trialBenefit = hasTrial && {\n key: 'trial',\n title: formatMessage(messages.benefitTrialTitle),\n body: formatMessage(messages.benefitTrialBody),\n };\n // Figma: the free trial pop-up leads with the trial; the launch pop-up ends with it.\n const benefits = [\n isFreeTrial && trialBenefit,\n {\n key: 'certificates',\n title: formatMessage(messages.benefitCertificatesTitle),\n body: formatMessage(messages.benefitCertificatesBody),\n },\n {\n key: 'change-course',\n title: formatMessage(messages.benefitChangeCourseTitle),\n body: formatMessage(isFreeTrial ? messages.benefitChangeCourseBodyFreeTrial : messages.benefitChangeCourseBody),\n },\n !isFreeTrial && trialBenefit,\n ].filter(Boolean);\n\n const purchaseButton = canPurchase && (\n <Button\n as=\"a\"\n href={purchaseUrl}\n variant=\"outline-brand\"\n className={isFreeTrial ? 'rounded-pill w-100 mt-2' : 'rounded-pill'}\n onClick={onPurchaseClick}\n data-testid=\"subscription-modal-purchase-button\"\n >\n {coursePrice\n ? formatMessage(messages.earnCertificateFor, { price: coursePrice })\n : formatMessage(messages.purchaseNoPrice)}\n </Button>\n );\n const subscribeButton = (\n <Button\n as=\"a\"\n href={offer.subscribeUrl}\n variant=\"brand\"\n className={isFreeTrial ? 'rounded-pill w-100' : 'rounded-pill'}\n onClick={onSubscribeClick}\n data-testid=\"subscription-modal-subscribe-button\"\n >\n {formatMessage(messages.continueToCheckout)}\n </Button>\n );\n\n return (\n <ModalDialog\n title={title}\n isOpen={isOpen}\n onClose={onClose}\n size={isFreeTrial ? 'md' : 'lg'}\n variant={isFreeTrial ? 'dark' : 'default'} // dark inverts the close button over the certificate hero\n hasCloseButton\n isFullscreenOnMobile\n isOverflowVisible={false}\n className={`subscription-benefits-modal subscription-benefits-modal--${isFreeTrial ? 'free-trial' : 'launch'}`}\n >\n {isFreeTrial && (\n <ModalDialog.Hero data-testid=\"subscription-modal-certificate\">\n {/* As BaseModal does: the dark variant paints hero text white, so pin the certificate text dark. */}\n <ModalDialog.Hero.Content className=\"m-0 text-primary-500\">\n <CertificatePreview courseId={courseId} bgColor=\"bg-white\" />\n </ModalDialog.Hero.Content>\n </ModalDialog.Hero>\n )}\n <ModalDialog.Header>\n {!isFreeTrial && (\n <p className=\"font-weight-bold mb-2\" data-testid=\"subscription-modal-brand\">{formatMessage(messages.brand)}</p>\n )}\n <ModalDialog.Title as=\"h2\">{title}</ModalDialog.Title>\n <p className=\"mt-2 mb-0\">{formatMessage(messages.modalSubtitle)}</p>\n </ModalDialog.Header>\n <ModalDialog.Body>\n <ul className={isFreeTrial ? 'list-unstyled mb-0' : 'list-unstyled bg-white rounded p-4 mb-0'}>\n {benefits.map((benefit) => (\n <li key={benefit.key} className=\"d-flex mb-3\" data-testid={`subscription-modal-benefit-${benefit.key}`}>\n <Icon src={isFreeTrial ? Check : CheckCircleOutline} className=\"mr-2 flex-shrink-0\" />\n <div>\n <div className=\"font-weight-bold\">{benefit.title}</div>\n <div>{benefit.body}</div>\n </div>\n </li>\n ))}\n </ul>\n </ModalDialog.Body>\n {isFreeTrial ? (\n <ModalDialog.Footer className=\"flex-column\">\n {subscribeButton}\n {purchaseButton}\n </ModalDialog.Footer>\n ) : (\n <ModalDialog.Footer>\n <ActionRow>\n {purchaseButton}\n {subscribeButton}\n </ActionRow>\n </ModalDialog.Footer>\n )}\n </ModalDialog>\n );\n};\n\nSubscriptionBenefitsModal.propTypes = {\n courseId: PropTypes.string.isRequired,\n isOpen: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n variant: PropTypes.oneOf(Object.values(BENEFITS_MODAL_VARIANT)),\n onSubscribeClick: PropTypes.func,\n onPurchaseClick: PropTypes.func,\n};\n\nSubscriptionBenefitsModal.defaultProps = {\n variant: BENEFITS_MODAL_VARIANT.LAUNCH,\n onSubscribeClick: undefined,\n onPurchaseClick: undefined,\n};\n\nexport default SubscriptionBenefitsModal;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAGA,IAAAI,MAAA,GAAAJ,OAAA;AAEA,IAAAK,mBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,qBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,SAAA,GAAAR,sBAAA,CAAAC,OAAA;AACAA,OAAA;AAA0C,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAZ1C;;AAcO,MAAMG,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,UAAU,EAAE,WAAW;EACvBC,MAAM,EAAE;AACV,CAAC;;AAED;AACA,MAAMC,yBAAyB,GAAGC,IAAA,IAO5B;EAAA,IAP6B;IACjCC,QAAQ;IACRC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,gBAAgB;IAChBC;EACF,CAAC,GAAAN,IAAA;EACC,MAAM;IAAEO;EAAc,CAAC,GAAG,IAAAC,aAAO,EAAC,CAAC;EACnC,MAAMC,KAAK,GAAG,IAAAC,6BAAoB,EAACT,QAAQ,CAAC;EAE5C,IAAI,CAACQ,KAAK,IAAI,CAACA,KAAK,CAACE,YAAY,EAAE;IACjC,OAAO,IAAI;EACb;EAEA,MAAM;IACJC,QAAQ;IAAEC,WAAW;IAAEC,WAAW;IAAEC;EACtC,CAAC,GAAGN,KAAK;EACT,MAAMO,WAAW,GAAGZ,OAAO,KAAKT,sBAAsB,CAACE,UAAU,IAAIe,QAAQ;EAC7E,MAAMK,KAAK,GAAGV,aAAa,CAACS,WAAW,GAAGE,iBAAQ,CAACC,mBAAmB,GAAGD,iBAAQ,CAACE,gBAAgB,CAAC;EAEnG,MAAMC,YAAY,GAAGT,QAAQ,IAAI;IAC/BU,GAAG,EAAE,OAAO;IACZL,KAAK,EAAEV,aAAa,CAACW,iBAAQ,CAACK,iBAAiB,CAAC;IAChDC,IAAI,EAAEjB,aAAa,CAACW,iBAAQ,CAACO,gBAAgB;EAC/C,CAAC;EACD;EACA,MAAMC,QAAQ,GAAG,CACfV,WAAW,IAAIK,YAAY,EAC3B;IACEC,GAAG,EAAE,cAAc;IACnBL,KAAK,EAAEV,aAAa,CAACW,iBAAQ,CAACS,wBAAwB,CAAC;IACvDH,IAAI,EAAEjB,aAAa,CAACW,iBAAQ,CAACU,uBAAuB;EACtD,CAAC,EACD;IACEN,GAAG,EAAE,eAAe;IACpBL,KAAK,EAAEV,aAAa,CAACW,iBAAQ,CAACW,wBAAwB,CAAC;IACvDL,IAAI,EAAEjB,aAAa,CAACS,WAAW,GAAGE,iBAAQ,CAACY,gCAAgC,GAAGZ,iBAAQ,CAACa,uBAAuB;EAChH,CAAC,EACD,CAACf,WAAW,IAAIK,YAAY,CAC7B,CAACW,MAAM,CAACC,OAAO,CAAC;EAEjB,MAAMC,cAAc,GAAGpB,WAAW,iBAChC,IAAAvB,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAAkD,MAAM;IACLC,EAAE,EAAC,GAAG;IACNC,IAAI,EAAEzB,WAAY;IAClBT,OAAO,EAAC,eAAe;IACvBmC,SAAS,EAAEvB,WAAW,GAAG,yBAAyB,GAAG,cAAe;IACpEwB,OAAO,EAAElC,eAAgB;IACzB,eAAY,oCAAoC;IAAAmC,QAAA,EAE/C1B,WAAW,GACRR,aAAa,CAACW,iBAAQ,CAACwB,kBAAkB,EAAE;MAAEC,KAAK,EAAE5B;IAAY,CAAC,CAAC,GAClER,aAAa,CAACW,iBAAQ,CAAC0B,eAAe;EAAC,CACrC,CACT;EACD,MAAMC,eAAe,gBACnB,IAAAtD,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAAkD,MAAM;IACLC,EAAE,EAAC,GAAG;IACNC,IAAI,EAAE7B,KAAK,CAACqC,YAAa;IACzB1C,OAAO,EAAC,OAAO;IACfmC,SAAS,EAAEvB,WAAW,GAAG,oBAAoB,GAAG,cAAe;IAC/DwB,OAAO,EAAEnC,gBAAiB;IAC1B,eAAY,qCAAqC;IAAAoC,QAAA,EAEhDlC,aAAa,CAACW,iBAAQ,CAAC6B,kBAAkB;EAAC,CACrC,CACT;EAED,oBACE,IAAAxD,WAAA,CAAAyD,IAAA,EAAC9D,QAAA,CAAA+D,WAAW;IACVhC,KAAK,EAAEA,KAAM;IACbf,MAAM,EAAEA,MAAO;IACfC,OAAO,EAAEA,OAAQ;IACjB+C,IAAI,EAAElC,WAAW,GAAG,IAAI,GAAG,IAAK;IAChCZ,OAAO,EAAEY,WAAW,GAAG,MAAM,GAAG,SAAU,CAAC;IAAA;IAC3CmC,cAAc;IACdC,oBAAoB;IACpBC,iBAAiB,EAAE,KAAM;IACzBd,SAAS,EAAE,4DAA4DvB,WAAW,GAAG,YAAY,GAAG,QAAQ,EAAG;IAAAyB,QAAA,GAE9GzB,WAAW,iBACV,IAAAzB,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA+D,WAAW,CAACK,IAAI;MAAC,eAAY,gCAAgC;MAAAb,QAAA,eAE5D,IAAAlD,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA+D,WAAW,CAACK,IAAI,CAACC,OAAO;QAAChB,SAAS,EAAC,sBAAsB;QAAAE,QAAA,eACxD,IAAAlD,WAAA,CAAA4C,GAAA,EAAC/C,mBAAA,CAAAM,OAAkB;UAACO,QAAQ,EAAEA,QAAS;UAACuD,OAAO,EAAC;QAAU,CAAE;MAAC,CACrC;IAAC,CACX,CACnB,eACD,IAAAjE,WAAA,CAAAyD,IAAA,EAAC9D,QAAA,CAAA+D,WAAW,CAACQ,MAAM;MAAAhB,QAAA,GAChB,CAACzB,WAAW,iBACX,IAAAzB,WAAA,CAAA4C,GAAA;QAAGI,SAAS,EAAC,uBAAuB;QAAC,eAAY,0BAA0B;QAAAE,QAAA,EAAElC,aAAa,CAACW,iBAAQ,CAACwC,KAAK;MAAC,CAAI,CAC/G,eACD,IAAAnE,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA+D,WAAW,CAACU,KAAK;QAACtB,EAAE,EAAC,IAAI;QAAAI,QAAA,EAAExB;MAAK,CAAoB,CAAC,eACtD,IAAA1B,WAAA,CAAA4C,GAAA;QAAGI,SAAS,EAAC,WAAW;QAAAE,QAAA,EAAElC,aAAa,CAACW,iBAAQ,CAAC0C,aAAa;MAAC,CAAI,CAAC;IAAA,CAClD,CAAC,eACrB,IAAArE,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA+D,WAAW,CAACY,IAAI;MAAApB,QAAA,eACf,IAAAlD,WAAA,CAAA4C,GAAA;QAAII,SAAS,EAAEvB,WAAW,GAAG,oBAAoB,GAAG,yCAA0C;QAAAyB,QAAA,EAC3Ff,QAAQ,CAACoC,GAAG,CAAEC,OAAO,iBACpB,IAAAxE,WAAA,CAAAyD,IAAA;UAAsBT,SAAS,EAAC,aAAa;UAAC,eAAa,8BAA8BwB,OAAO,CAACzC,GAAG,EAAG;UAAAmB,QAAA,gBACrG,IAAAlD,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA8E,IAAI;YAACC,GAAG,EAAEjD,WAAW,GAAGkD,YAAK,GAAGC,yBAAmB;YAAC5B,SAAS,EAAC;UAAoB,CAAE,CAAC,eACtF,IAAAhD,WAAA,CAAAyD,IAAA;YAAAP,QAAA,gBACE,IAAAlD,WAAA,CAAA4C,GAAA;cAAKI,SAAS,EAAC,kBAAkB;cAAAE,QAAA,EAAEsB,OAAO,CAAC9C;YAAK,CAAM,CAAC,eACvD,IAAA1B,WAAA,CAAA4C,GAAA;cAAAM,QAAA,EAAMsB,OAAO,CAACvC;YAAI,CAAM,CAAC;UAAA,CACtB,CAAC;QAAA,GALCuC,OAAO,CAACzC,GAMb,CACL;MAAC,CACA;IAAC,CACW,CAAC,EAClBN,WAAW,gBACV,IAAAzB,WAAA,CAAAyD,IAAA,EAAC9D,QAAA,CAAA+D,WAAW,CAACmB,MAAM;MAAC7B,SAAS,EAAC,aAAa;MAAAE,QAAA,GACxCI,eAAe,EACfX,cAAc;IAAA,CACG,CAAC,gBAErB,IAAA3C,WAAA,CAAA4C,GAAA,EAACjD,QAAA,CAAA+D,WAAW,CAACmB,MAAM;MAAA3B,QAAA,eACjB,IAAAlD,WAAA,CAAAyD,IAAA,EAAC9D,QAAA,CAAAmF,SAAS;QAAA5B,QAAA,GACPP,cAAc,EACdW,eAAe;MAAA,CACP;IAAC,CACM,CACrB;EAAA,CACU,CAAC;AAElB,CAAC;AAED9C,yBAAyB,CAACuE,SAAS,GAAG;EACpCrE,QAAQ,EAAEsE,kBAAS,CAACC,MAAM,CAACC,UAAU;EACrCvE,MAAM,EAAEqE,kBAAS,CAACG,IAAI,CAACD,UAAU;EACjCtE,OAAO,EAAEoE,kBAAS,CAACI,IAAI,CAACF,UAAU;EAClCrE,OAAO,EAAEmE,kBAAS,CAACK,KAAK,CAACC,MAAM,CAACC,MAAM,CAACnF,sBAAsB,CAAC,CAAC;EAC/DU,gBAAgB,EAAEkE,kBAAS,CAACI,IAAI;EAChCrE,eAAe,EAAEiE,kBAAS,CAACI;AAC7B,CAAC;AAED5E,yBAAyB,CAACgF,YAAY,GAAG;EACvC3E,OAAO,EAAET,sBAAsB,CAACG,MAAM;EACtCO,gBAAgB,EAAE2E,SAAS;EAC3B1E,eAAe,EAAE0E;AACnB,CAAC;AAAC,IAAAC,QAAA,GAAArF,OAAA,CAAAF,OAAA,GAEaK,yBAAyB","ignoreList":[]}
|
|
@@ -15,6 +15,7 @@ var _NextButton = _interopRequireDefault(require("@src/courseware/course/sequenc
|
|
|
15
15
|
var _hooks2 = require("./hooks");
|
|
16
16
|
var _UpgradeModal = _interopRequireDefault(require("./UpgradeModal"));
|
|
17
17
|
var _dynamicExperienceSlot = _interopRequireDefault(require("../dynamic-experience-slot"));
|
|
18
|
+
var _subscriptionUpsell = require("../subscription-upsell");
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -49,6 +50,11 @@ const NextUnitButton = _ref => {
|
|
|
49
50
|
learningAssistantEnabled
|
|
50
51
|
} = (0, _modelStore.useModel)('coursewareMeta', courseId);
|
|
51
52
|
const isEnabled = (0, _hooks2.useIsModalEnabled)(courseId);
|
|
53
|
+
// UpgradeModal shows the subscription pop-up to a learner who can subscribe (same check as the card
|
|
54
|
+
// and banners, same deadline test as UpgradeModal). The Red Ventures slot would replace it, so skip it.
|
|
55
|
+
const pastDeadline = !!accessExpiration && new Date() > new Date(accessExpiration.upgradeDeadline);
|
|
56
|
+
const showsSubscription = !!(0, _subscriptionUpsell.useSubscriptionOffer)(courseId)?.canSubscribe && !pastDeadline;
|
|
57
|
+
const useInHouseModal = disableRedVentures || showsSubscription;
|
|
52
58
|
const [shouldShowModalOnClick, countNextClick] = (0, _hooks2.useInCourseUpgradeModal)();
|
|
53
59
|
const handleModal = () => {
|
|
54
60
|
if (isEnabled) {
|
|
@@ -83,7 +89,7 @@ const NextUnitButton = _ref => {
|
|
|
83
89
|
buttonText: buttonText,
|
|
84
90
|
disabled: disabled,
|
|
85
91
|
isAtTop: isAtTop
|
|
86
|
-
}), isOpen &&
|
|
92
|
+
}), isOpen && useInHouseModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModal.default, _objectSpread({}, modalProps)), isOpen && !useInHouseModal && /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.ErrorBoundary, {
|
|
87
93
|
fallbackComponent: /*#__PURE__*/(0, _jsxRuntime.jsx)(_UpgradeModal.default, _objectSpread({}, modalProps)),
|
|
88
94
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dynamicExperienceSlot.default, {
|
|
89
95
|
widgetName: "MonarchResolvedDynamicExperience",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_frontendPlatform","_react2","_modelStore","_hooks","_NextButton","_hooks2","_UpgradeModal","_dynamicExperienceSlot","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","NextUnitButton","_ref","disabled","buttonText","sequenceId","onClickHandler","nextLink","variant","buttonStyle","isAtTop","disableRedVentures","getConfig","DISABLE_RED_VENTURES_WIDGETS","toLowerCase","courseId","useContextId","isOpen","open","close","useToggle","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","modalProps","useMemo","jsxs","Fragment","children","jsx","ErrorBoundary","fallbackComponent","widgetName","placement","tenantId","pluginProps","defaultProps","propTypes","PropTypes","bool","isRequired","string","unitId","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useToggle } from '@openedx/paragon';\nimport { getConfig } from '@edx/frontend-platform';\nimport { ErrorBoundary } from '@edx/frontend-platform/react';\n\nimport { useModel } from '@src/generic/model-store';\nimport { useContextId } from '@src/data/hooks';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModal from './UpgradeModal';\nimport DynamicExperienceSlot from '../dynamic-experience-slot';\n\nconst NextUnitButton = ({\n disabled,\n buttonText,\n sequenceId,\n onClickHandler,\n nextLink,\n variant,\n buttonStyle,\n isAtTop,\n}) => {\n const disableRedVentures = String(getConfig().DISABLE_RED_VENTURES_WIDGETS).toLowerCase() === 'true';\n const courseId = useContextId();\n const [isOpen, open, close] = useToggle(false);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\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 modalProps = useMemo(() => ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n }), [\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n ]);\n\n return (\n <>\n <NextButton\n onClickHandler={onClickHandler}\n nextLink={nextLink}\n variant={variant}\n buttonStyle={buttonStyle}\n buttonText={buttonText}\n disabled={disabled}\n isAtTop={isAtTop}\n />\n\n {isOpen && disableRedVentures && <UpgradeModal {...modalProps} />}\n {isOpen && !disableRedVentures && (\n <ErrorBoundary fallbackComponent={<UpgradeModal {...modalProps} />}>\n <DynamicExperienceSlot\n widgetName=\"MonarchResolvedDynamicExperience\"\n placement=\"org.2u.edx.frontend.learning.upgrade.modal.v1\"\n tenantId=\"2u-edx-learning\"\n pluginProps={modalProps}\n />\n </ErrorBoundary>\n )}\n </>\n );\n};\n\nNextUnitButton.defaultProps = {\n isAtTop: false,\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 // eslint-disable-next-line react/no-unused-prop-types\n unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n courseId: PropTypes.string.isRequired,\n variant: PropTypes.string.isRequired,\n buttonStyle: PropTypes.string.isRequired,\n isAtTop: PropTypes.bool,\n};\n\nexport default NextUnitButton;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NextUnitButton.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_paragon","_frontendPlatform","_react2","_modelStore","_hooks","_NextButton","_hooks2","_UpgradeModal","_dynamicExperienceSlot","_subscriptionUpsell","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","NextUnitButton","_ref","disabled","buttonText","sequenceId","onClickHandler","nextLink","variant","buttonStyle","isAtTop","disableRedVentures","getConfig","DISABLE_RED_VENTURES_WIDGETS","toLowerCase","courseId","useContextId","isOpen","open","close","useToggle","verifiedMode","org","useModel","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","isEnabled","useIsModalEnabled","pastDeadline","Date","upgradeDeadline","showsSubscription","useSubscriptionOffer","canSubscribe","useInHouseModal","shouldShowModalOnClick","countNextClick","useInCourseUpgradeModal","handleModal","useEffect","modalProps","useMemo","jsxs","Fragment","children","jsx","ErrorBoundary","fallbackComponent","widgetName","placement","tenantId","pluginProps","defaultProps","propTypes","PropTypes","bool","isRequired","string","unitId","func","_default","exports"],"sources":["../../src/upgrade-modal/NextUnitButton.jsx"],"sourcesContent":["/* eslint import/no-unresolved: 0 */\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { useToggle } from '@openedx/paragon';\nimport { getConfig } from '@edx/frontend-platform';\nimport { ErrorBoundary } from '@edx/frontend-platform/react';\n\nimport { useModel } from '@src/generic/model-store';\nimport { useContextId } from '@src/data/hooks';\nimport NextButton from '@src/courseware/course/sequence/sequence-navigation/generic/NextButton';\nimport { useInCourseUpgradeModal, useIsModalEnabled } from './hooks';\nimport UpgradeModal from './UpgradeModal';\nimport DynamicExperienceSlot from '../dynamic-experience-slot';\nimport { useSubscriptionOffer } from '../subscription-upsell';\n\nconst NextUnitButton = ({\n disabled,\n buttonText,\n sequenceId,\n onClickHandler,\n nextLink,\n variant,\n buttonStyle,\n isAtTop,\n}) => {\n const disableRedVentures = String(getConfig().DISABLE_RED_VENTURES_WIDGETS).toLowerCase() === 'true';\n const courseId = useContextId();\n const [isOpen, open, close] = useToggle(false);\n const {\n verifiedMode,\n org,\n } = useModel('courseHomeMeta', courseId);\n\n const {\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n } = useModel('coursewareMeta', courseId);\n\n const isEnabled = useIsModalEnabled(courseId);\n // UpgradeModal shows the subscription pop-up to a learner who can subscribe (same check as the card\n // and banners, same deadline test as UpgradeModal). The Red Ventures slot would replace it, so skip it.\n const pastDeadline = !!accessExpiration && new Date() > new Date(accessExpiration.upgradeDeadline);\n const showsSubscription = !!useSubscriptionOffer(courseId)?.canSubscribe && !pastDeadline;\n const useInHouseModal = disableRedVentures || showsSubscription;\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 modalProps = useMemo(() => ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n }), [\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\n ]);\n\n return (\n <>\n <NextButton\n onClickHandler={onClickHandler}\n nextLink={nextLink}\n variant={variant}\n buttonStyle={buttonStyle}\n buttonText={buttonText}\n disabled={disabled}\n isAtTop={isAtTop}\n />\n\n {isOpen && useInHouseModal && <UpgradeModal {...modalProps} />}\n {isOpen && !useInHouseModal && (\n <ErrorBoundary fallbackComponent={<UpgradeModal {...modalProps} />}>\n <DynamicExperienceSlot\n widgetName=\"MonarchResolvedDynamicExperience\"\n placement=\"org.2u.edx.frontend.learning.upgrade.modal.v1\"\n tenantId=\"2u-edx-learning\"\n pluginProps={modalProps}\n />\n </ErrorBoundary>\n )}\n </>\n );\n};\n\nNextUnitButton.defaultProps = {\n isAtTop: false,\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 // eslint-disable-next-line react/no-unused-prop-types\n unitId: PropTypes.string.isRequired,\n onClickHandler: PropTypes.func.isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n courseId: PropTypes.string.isRequired,\n variant: PropTypes.string.isRequired,\n buttonStyle: PropTypes.string.isRequired,\n isAtTop: PropTypes.bool,\n};\n\nexport default NextUnitButton;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,6 +13,7 @@ var _upgradeButton = require("@src/generic/upgrade-button");
|
|
|
13
13
|
var _generic = require("../generic");
|
|
14
14
|
var _BaseModal = _interopRequireDefault(require("./BaseModal"));
|
|
15
15
|
var _cohesion = require("../cohesion");
|
|
16
|
+
var _subscriptionUpsell = require("../subscription-upsell");
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
19
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -67,6 +68,15 @@ const UpgradeModal = _ref => {
|
|
|
67
68
|
}));
|
|
68
69
|
conversion('Upgraded');
|
|
69
70
|
};
|
|
71
|
+
const logSubscribeClick = () => {
|
|
72
|
+
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upsell_links_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
73
|
+
linkCategory: 'subscription',
|
|
74
|
+
linkName: `${upsellPageName}_subscribe`,
|
|
75
|
+
linkType: 'button',
|
|
76
|
+
pageName: upsellPageName
|
|
77
|
+
}));
|
|
78
|
+
conversion('Subscribe Clicked'); // on the click, before checkout
|
|
79
|
+
};
|
|
70
80
|
const logClickPastExpiration = () => {
|
|
71
81
|
(0, _analytics.sendTrackEvent)('edx.bi.ecommerce.upgrade_modal.past_expiration.button_clicked', _objectSpread(_objectSpread({}, eventProperties), {}, {
|
|
72
82
|
linkCategory: 'upgrade_modal',
|
|
@@ -75,11 +85,25 @@ const UpgradeModal = _ref => {
|
|
|
75
85
|
pageName: upsellPageName
|
|
76
86
|
}));
|
|
77
87
|
};
|
|
88
|
+
const subscriptionOffer = (0, _subscriptionUpsell.useSubscriptionOffer)(courseId);
|
|
78
89
|
const intl = (0, _i18n.useIntl)();
|
|
79
90
|
const dateNow = Date.now();
|
|
80
91
|
const upgradeDeadlineDate = accessExpiration ? new Date(accessExpiration.upgradeDeadline) : null;
|
|
81
92
|
const pastDeadline = accessExpiration ? new Date(dateNow) > upgradeDeadlineDate : false;
|
|
82
93
|
const isFBE = !!accessExpiration && !!datesBannerInfo?.contentTypeGatingEnabled;
|
|
94
|
+
|
|
95
|
+
// A learner who can subscribe gets the subscription pop-up (Figma 3339-7937) with the same
|
|
96
|
+
// displayed and purchase tracking as this modal. Past the deadline the purchase is closed.
|
|
97
|
+
if (!pastDeadline && subscriptionOffer?.canSubscribe) {
|
|
98
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_subscriptionUpsell.SubscriptionBenefitsModal, {
|
|
99
|
+
courseId: courseId,
|
|
100
|
+
isOpen: isOpen,
|
|
101
|
+
onClose: close,
|
|
102
|
+
variant: _subscriptionUpsell.BENEFITS_MODAL_VARIANT.FREE_TRIAL,
|
|
103
|
+
onSubscribeClick: logSubscribeClick,
|
|
104
|
+
onPurchaseClick: logClick
|
|
105
|
+
});
|
|
106
|
+
}
|
|
83
107
|
let callToActionButton = /*#__PURE__*/(0, _jsxRuntime.jsx)(_upgradeButton.UpgradeButton, {
|
|
84
108
|
"data-testid": "upgrade-button",
|
|
85
109
|
offer: offer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_cohesion","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","conversion","useCohesion","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","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModal.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 { UpsellTable } from '../generic';\nimport BaseModal from './BaseModal';\nimport { useCohesion } from '../cohesion';\n\nconst UpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\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 const { conversion } = useCohesion(courseId);\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 conversion('Upgraded');\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 data-testid=\"upgrade-button\"\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 }}\n >\n <UpsellTable {...{ isFBE, learningAssistantEnabled }} />\n </BaseModal>\n );\n};\n\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nUpgradeModal.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 learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default UpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"UpgradeModal.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_analytics","_i18n","_paragon","_upgradeButton","_generic","_BaseModal","_cohesion","_subscriptionUpsell","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","UpgradeModal","_ref","isOpen","close","verifiedMode","org","courseId","offer","marketingUrl","accessExpiration","datesBannerInfo","learningAssistantEnabled","upsellPageName","eventProperties","org_key","courserun_key","promotionEventProperties","creative","name","position","promotion_id","conversion","useCohesion","useEffect","sendTrackingLogEvent","sendTrackEvent","logClick","location","linkCategory","linkName","linkType","pageName","logSubscribeClick","logClickPastExpiration","subscriptionOffer","useSubscriptionOffer","intl","useIntl","dateNow","Date","now","upgradeDeadlineDate","upgradeDeadline","pastDeadline","isFBE","contentTypeGatingEnabled","canSubscribe","jsx","SubscriptionBenefitsModal","onClose","variant","BENEFITS_MODAL_VARIANT","FREE_TRIAL","onSubscribeClick","onPurchaseClick","callToActionButton","UpgradeButton","onClick","block","Button","className","href","children","formatMessage","id","defaultMessage","description","UpsellTable","defaultProps","propTypes","PropTypes","shape","price","number","isRequired","currencySymbol","string","upgradeUrl","code","bool","func","_default","exports"],"sources":["../../src/upgrade-modal/UpgradeModal.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 { UpsellTable } from '../generic';\nimport BaseModal from './BaseModal';\nimport { useCohesion } from '../cohesion';\nimport { SubscriptionBenefitsModal, BENEFITS_MODAL_VARIANT, useSubscriptionOffer } from '../subscription-upsell';\n\nconst UpgradeModal = ({\n isOpen,\n close,\n verifiedMode,\n org,\n courseId,\n offer,\n marketingUrl,\n accessExpiration,\n datesBannerInfo,\n learningAssistantEnabled,\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 const { conversion } = useCohesion(courseId);\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 conversion('Upgraded');\n };\n const logSubscribeClick = () => {\n sendTrackEvent('edx.bi.ecommerce.upsell_links_clicked', {\n ...eventProperties,\n linkCategory: 'subscription',\n linkName: `${upsellPageName}_subscribe`,\n linkType: 'button',\n pageName: upsellPageName,\n });\n conversion('Subscribe Clicked'); // on the click, before checkout\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 subscriptionOffer = useSubscriptionOffer(courseId);\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 // A learner who can subscribe gets the subscription pop-up (Figma 3339-7937) with the same\n // displayed and purchase tracking as this modal. Past the deadline the purchase is closed.\n if (!pastDeadline && subscriptionOffer?.canSubscribe) {\n return (\n <SubscriptionBenefitsModal\n courseId={courseId}\n isOpen={isOpen}\n onClose={close}\n variant={BENEFITS_MODAL_VARIANT.FREE_TRIAL}\n onSubscribeClick={logSubscribeClick}\n onPurchaseClick={logClick}\n />\n );\n }\n\n let callToActionButton = (\n <UpgradeButton\n data-testid=\"upgrade-button\"\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 }}\n >\n <UpsellTable {...{ isFBE, learningAssistantEnabled }} />\n </BaseModal>\n );\n};\n\nUpgradeModal.defaultProps = {\n verifiedMode: {},\n offer: null,\n accessExpiration: null,\n datesBannerInfo: null,\n};\nUpgradeModal.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 learningAssistantEnabled: PropTypes.bool.isRequired,\n};\n\nexport default UpgradeModal;\n"],"mappings":"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","ignoreList":[]}
|