@edx/frontend-app-subscription-learner-dashboard 1.15.0 → 1.15.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/containers/SubscriptionBanner/components/SubscriptionBanner.js +30 -8
- package/dist/containers/SubscriptionBanner/components/SubscriptionBanner.js.map +1 -1
- package/dist/containers/SubscriptionBanner/messages.d.ts +10 -0
- package/dist/containers/SubscriptionBanner/messages.js +22 -11
- package/dist/containers/SubscriptionBanner/messages.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { useEffect, useState, useMemo } from 'react';
|
|
|
3
3
|
import { Alert, Icon, Button } from '@openedx/paragon';
|
|
4
4
|
import { CheckCircle, Info, OpenInNew } from '@openedx/paragon/icons';
|
|
5
5
|
import { useIntl } from '@openedx/frontend-base';
|
|
6
|
+
import moment from 'moment';
|
|
6
7
|
import { utilHooks } from '../../../hooks';
|
|
7
8
|
import messages from '../messages';
|
|
8
9
|
import { subscriptionRenewalURL } from '../../../data/constants/app';
|
|
@@ -13,12 +14,14 @@ import { subscriptionRenewalURL } from '../../../data/constants/app';
|
|
|
13
14
|
const subscriptionBannerData = {
|
|
14
15
|
isSubscribed: true,
|
|
15
16
|
subscriptionStatus: 'trial', // can be 'active', 'cancelled', 'expired'
|
|
16
|
-
subscriptionStartDate: '05
|
|
17
|
-
subscriptionEndDate: '
|
|
18
|
-
subscriptionRenewalDate: '
|
|
17
|
+
subscriptionStartDate: '2026-05-22',
|
|
18
|
+
subscriptionEndDate: '2026-07-22',
|
|
19
|
+
subscriptionRenewalDate: '2026-07-22',
|
|
19
20
|
subscriptionRenewalPrice: '$36',
|
|
20
21
|
};
|
|
22
|
+
// TODO: Also update as per new designs once we have the designs ready for the other subscription types than 'trial'.
|
|
21
23
|
export const SubscriptionBanner = () => {
|
|
24
|
+
var _a;
|
|
22
25
|
const { formatMessage } = useIntl();
|
|
23
26
|
const [showPageBanner, setShowPageBanner] = useState(true);
|
|
24
27
|
const [bannerBody, setBannerBody] = useState('');
|
|
@@ -26,6 +29,11 @@ export const SubscriptionBanner = () => {
|
|
|
26
29
|
const [bannerVariant, setBannerVariant] = useState(undefined);
|
|
27
30
|
const formatDate = utilHooks.useFormatDate();
|
|
28
31
|
useEffect(() => {
|
|
32
|
+
const trialEndDate = moment(subscriptionBannerData.subscriptionEndDate).startOf('day');
|
|
33
|
+
const today = moment().startOf('day');
|
|
34
|
+
const trialDaysLeft = trialEndDate.isValid()
|
|
35
|
+
? Math.max(0, trialEndDate.diff(today, 'days'))
|
|
36
|
+
: 0;
|
|
29
37
|
switch (subscriptionBannerData.subscriptionStatus) {
|
|
30
38
|
case 'active':
|
|
31
39
|
setBannerVariant('success');
|
|
@@ -38,11 +46,19 @@ export const SubscriptionBanner = () => {
|
|
|
38
46
|
break;
|
|
39
47
|
case 'trial':
|
|
40
48
|
setBannerVariant('success');
|
|
41
|
-
|
|
49
|
+
if (trialDaysLeft === 0) {
|
|
50
|
+
setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitleToday));
|
|
51
|
+
}
|
|
52
|
+
else if (trialDaysLeft === 1) {
|
|
53
|
+
setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitleTomorrow));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitle, {
|
|
57
|
+
daysLeft: trialDaysLeft,
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
42
60
|
setBannerBody(formatMessage(messages.activeTrialSubscriptionBody, {
|
|
43
|
-
|
|
44
|
-
subscriptionRenewalDate: formatDate(subscriptionBannerData.subscriptionRenewalDate),
|
|
45
|
-
subscriptionRenewalPrice: subscriptionBannerData.subscriptionRenewalPrice,
|
|
61
|
+
subscriptionEndDate: formatDate(subscriptionBannerData.subscriptionEndDate),
|
|
46
62
|
}));
|
|
47
63
|
break;
|
|
48
64
|
case 'cancelled':
|
|
@@ -67,6 +83,12 @@ export const SubscriptionBanner = () => {
|
|
|
67
83
|
return [];
|
|
68
84
|
}
|
|
69
85
|
}, [formatMessage]);
|
|
70
|
-
|
|
86
|
+
const subscriptionStatusIcons = {
|
|
87
|
+
trial: undefined,
|
|
88
|
+
cancelled: Info,
|
|
89
|
+
active: CheckCircle,
|
|
90
|
+
};
|
|
91
|
+
const bannerIcon = (_a = subscriptionStatusIcons[subscriptionBannerData.subscriptionStatus]) !== null && _a !== void 0 ? _a : undefined;
|
|
92
|
+
return (_jsx("div", { className: "mt-4.5 mb-4.5", children: _jsxs(Alert, { variant: bannerVariant, icon: bannerIcon, dismissible: true, closeLabel: "Dismiss", show: showPageBanner, onClose: () => setShowPageBanner(false), actions: getSubscriptionAction, children: [_jsx(Alert.Heading, { children: bannerTitle }), _jsx("p", { children: bannerBody })] }) }));
|
|
71
93
|
};
|
|
72
94
|
//# sourceMappingURL=SubscriptionBanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionBanner.js","sourceRoot":"","sources":["../../../../src/containers/SubscriptionBanner/components/SubscriptionBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,gIAAgI;AAChI,oFAAoF;AACpF,sGAAsG;AACtG,8JAA8J;AAC9J,MAAM,sBAAsB,GAAG;IAC7B,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,OAAO,EAAE,0CAA0C;IACvE,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"SubscriptionBanner.js","sourceRoot":"","sources":["../../../../src/containers/SubscriptionBanner/components/SubscriptionBanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAM,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAW,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,gIAAgI;AAChI,oFAAoF;AACpF,sGAAsG;AACtG,8JAA8J;AAC9J,MAAM,sBAAsB,GAAG;IAC7B,YAAY,EAAE,IAAI;IAClB,kBAAkB,EAAE,OAAO,EAAE,0CAA0C;IACvE,qBAAqB,EAAE,YAAY;IACnC,mBAAmB,EAAE,YAAY;IACjC,uBAAuB,EAAE,YAAY;IACrC,wBAAwB,EAAE,KAAK;CAChC,CAAC;AAEF,qHAAqH;AACrH,MAAM,CAAC,MAAM,kBAAkB,GAAO,GAAG,EAAE;;IACzC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,MAAM,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,EAAE;YAC1C,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC,CAAC;QAEN,QAAQ,sBAAsB,CAAC,kBAAkB,EAAE,CAAC;YAClD,KAAK,QAAQ;gBACX,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC5B,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAChE,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,EAAE;oBAC3D,qBAAqB,EAAE,UAAU,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;oBAC/E,uBAAuB,EAAE,UAAU,CAAC,sBAAsB,CAAC,uBAAuB,CAAC;oBACnF,wBAAwB,EAAE,sBAAsB,CAAC,wBAAwB;iBAC1E,CAAC,CAAC,CAAC;gBACJ,MAAM;YACR,KAAK,OAAO;gBACV,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC5B,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;oBACxB,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;oBAC/B,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC/E,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,4BAA4B,EAAE;wBAClE,QAAQ,EAAE,aAAa;qBACxB,CAAC,CAAC,CAAC;gBACN,CAAC;gBACD,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,2BAA2B,EAAE;oBAChE,mBAAmB,EAAE,UAAU,CAAC,sBAAsB,CAAC,mBAAmB,CAAC;iBAC5E,CAAC,CAAC,CAAC;gBACJ,MAAM;YACR,KAAK,WAAW;gBACd,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBAC5B,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBACnE,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,yBAAyB,EAAE;oBAC9D,mBAAmB,EAAE,UAAU,CAAC,sBAAsB,CAAC,qBAAqB,CAAC;iBAC9E,CAAC,CAAC,CAAC;gBACJ,MAAM;YACR;gBACE,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;QACV,CAAC;IACH,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAEhC,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE;QACzC,IAAI,sBAAsB,CAAC,kBAAkB,KAAK,WAAW,EAAE,CAAC;YAC9D,OAAO,CACL;gBACE,MAAC,MAAM,mBAEO,cAAc,EAC1B,SAAS,EAAC,cAAc,EACxB,OAAO,EAAC,SAAS,EACjB,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,IAAI,EAAC,MAAM,aAEV,aAAa,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAChD,KAAC,IAAI,IACH,GAAG,EAAE,SAAS,EACd,SAAS,EAAC,kBAAkB,GAC5B,KAbE,oBAAoB,CAcjB;aACV,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,MAAM,uBAAuB,GAA4C;QACvE,KAAK,EAAE,SAAS;QAChB,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,WAAW;KACpB,CAAC;IAEF,MAAM,UAAU,GAAG,MAAA,uBAAuB,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,mCAAI,SAAS,CAAC;IAEnG,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,YAC5B,MAAC,KAAK,IACJ,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,UAAU,EAChB,WAAW,QACX,UAAU,EAAC,SAAS,EACpB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,EACvC,OAAO,EAAE,qBAAqB,aAE9B,KAAC,KAAK,CAAC,OAAO,cAAE,WAAW,GAAiB,EAC5C,sBACG,UAAU,GACT,IACE,GACJ,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { FC, useEffect, useState, useMemo } from 'react';\nimport { Alert, Icon, Button, Variant } from '@openedx/paragon';\nimport { CheckCircle, Info, OpenInNew } from '@openedx/paragon/icons';\nimport { useIntl } from '@openedx/frontend-base';\nimport moment from 'moment';\nimport { utilHooks } from '@src/hooks';\nimport messages from '../messages';\nimport { subscriptionRenewalURL } from '@src/data/constants/app';\n\n// TODO: We can replace the below hardcoded subscriptionBannerData with the actual data from the API once we have the API ready.\n// For now, we can use this hardcoded data to test the SubscriptionBanner component.\n// Refer to https://2u-internal.atlassian.net/browse/SUBS-442 for more details on the API integration.\n// And https://github.com/edx/frontend-app-subscription-learner-dashboard/pull/2#discussion_r3139442324 for the implementation details of the API integration.\nconst subscriptionBannerData = {\n isSubscribed: true,\n subscriptionStatus: 'trial', // can be 'active', 'cancelled', 'expired'\n subscriptionStartDate: '2026-05-22',\n subscriptionEndDate: '2026-07-22',\n subscriptionRenewalDate: '2026-07-22',\n subscriptionRenewalPrice: '$36',\n};\n\n// TODO: Also update as per new designs once we have the designs ready for the other subscription types than 'trial'.\nexport const SubscriptionBanner: FC = () => {\n const { formatMessage } = useIntl();\n const [showPageBanner, setShowPageBanner] = useState<boolean>(true);\n const [bannerBody, setBannerBody] = useState('');\n const [bannerTitle, setBannerTitle] = useState('');\n const [bannerVariant, setBannerVariant] = useState<Variant | undefined>(undefined);\n const formatDate = utilHooks.useFormatDate();\n\n useEffect(() => {\n const trialEndDate = moment(subscriptionBannerData.subscriptionEndDate).startOf('day');\n const today = moment().startOf('day');\n const trialDaysLeft = trialEndDate.isValid()\n ? Math.max(0, trialEndDate.diff(today, 'days'))\n : 0;\n\n switch (subscriptionBannerData.subscriptionStatus) {\n case 'active':\n setBannerVariant('success');\n setBannerTitle(formatMessage(messages.activeSubscriptionTitle));\n setBannerBody(formatMessage(messages.activeSubscriptionBody, {\n subscriptionStartDate: formatDate(subscriptionBannerData.subscriptionStartDate),\n subscriptionRenewalDate: formatDate(subscriptionBannerData.subscriptionRenewalDate),\n subscriptionRenewalPrice: subscriptionBannerData.subscriptionRenewalPrice,\n }));\n break;\n case 'trial':\n setBannerVariant('success');\n if (trialDaysLeft === 0) {\n setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitleToday));\n } else if (trialDaysLeft === 1) {\n setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitleTomorrow));\n } else {\n setBannerTitle(formatMessage(messages.activeTrialSubscriptionTitle, {\n daysLeft: trialDaysLeft,\n }));\n }\n setBannerBody(formatMessage(messages.activeTrialSubscriptionBody, {\n subscriptionEndDate: formatDate(subscriptionBannerData.subscriptionEndDate),\n }));\n break;\n case 'cancelled':\n setBannerVariant('warning');\n setBannerTitle(formatMessage(messages.cancelledSubscriptionTitle));\n setBannerBody(formatMessage(messages.cancelledSubscriptionBody, {\n subscriptionEndDate: formatDate(subscriptionBannerData.subscriptionStartDate),\n }));\n break;\n default:\n setShowPageBanner(false);\n break;\n }\n }, [formatDate, formatMessage]);\n\n const getSubscriptionAction = useMemo(() => {\n if (subscriptionBannerData.subscriptionStatus === 'cancelled') {\n return (\n [\n <Button\n key=\"renew-subscription\"\n data-testid=\"renew-button\"\n className=\"renew-button\"\n variant=\"primary\"\n href={subscriptionRenewalURL}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n role=\"link\"\n >\n {formatMessage(messages.renewSubscriptionButton)}\n <Icon\n src={OpenInNew}\n className=\"mr-2 in-new-icon\"\n />\n </Button>,\n ]\n );\n } else {\n return [];\n }\n }, [formatMessage]);\n\n const subscriptionStatusIcons: Record<string, typeof Info | undefined> = {\n trial: undefined,\n cancelled: Info,\n active: CheckCircle,\n };\n\n const bannerIcon = subscriptionStatusIcons[subscriptionBannerData.subscriptionStatus] ?? undefined;\n\n return (\n <div className=\"mt-4.5 mb-4.5\">\n <Alert\n variant={bannerVariant}\n icon={bannerIcon}\n dismissible\n closeLabel=\"Dismiss\"\n show={showPageBanner}\n onClose={() => setShowPageBanner(false)}\n actions={getSubscriptionAction}\n >\n <Alert.Heading>{bannerTitle}</Alert.Heading>\n <p>\n {bannerBody}\n </p>\n </Alert>\n </div>\n );\n};\n"]}
|
|
@@ -14,6 +14,16 @@ declare const messages: {
|
|
|
14
14
|
description: string;
|
|
15
15
|
defaultMessage: string;
|
|
16
16
|
};
|
|
17
|
+
activeTrialSubscriptionTitleToday: {
|
|
18
|
+
id: string;
|
|
19
|
+
description: string;
|
|
20
|
+
defaultMessage: string;
|
|
21
|
+
};
|
|
22
|
+
activeTrialSubscriptionTitleTomorrow: {
|
|
23
|
+
id: string;
|
|
24
|
+
description: string;
|
|
25
|
+
defaultMessage: string;
|
|
26
|
+
};
|
|
17
27
|
activeTrialSubscriptionBody: {
|
|
18
28
|
id: string;
|
|
19
29
|
description: string;
|
|
@@ -1,37 +1,48 @@
|
|
|
1
1
|
import { defineMessages } from '@openedx/frontend-base';
|
|
2
|
+
// TODO: Update the messages as per new designs once we have the designs ready for subscription types other than 'trial'.
|
|
2
3
|
const messages = defineMessages({
|
|
3
4
|
activeSubscriptionTitle: {
|
|
4
|
-
id: 'learner-dash.
|
|
5
|
+
id: 'learner-dash.subscriptionBanner.banners.activeSubscriptionTitle',
|
|
5
6
|
description: 'Message to learners with an active subscription',
|
|
6
7
|
defaultMessage: 'Your subscription is now active',
|
|
7
8
|
},
|
|
8
9
|
activeSubscriptionBody: {
|
|
9
|
-
id: 'learner-dash.
|
|
10
|
+
id: 'learner-dash.subscriptionBanner.banners.activeSubscriptionBody',
|
|
10
11
|
description: 'Message to learners with an active subscription',
|
|
11
12
|
defaultMessage: 'On {subscriptionStartDate} you subscribed to edX subscription product. Your subscription will renew on {subscriptionRenewalDate}.',
|
|
12
13
|
},
|
|
13
14
|
activeTrialSubscriptionTitle: {
|
|
14
|
-
id: 'learner-dash.
|
|
15
|
+
id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitle',
|
|
15
16
|
description: 'Message to learners with an active trial subscription',
|
|
16
|
-
defaultMessage: 'Your subscription
|
|
17
|
+
defaultMessage: 'Your edX subscription trial expires in {daysLeft} days.',
|
|
18
|
+
},
|
|
19
|
+
activeTrialSubscriptionTitleToday: {
|
|
20
|
+
id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitleToday',
|
|
21
|
+
description: 'Message to learners with a trial subscription expiring today',
|
|
22
|
+
defaultMessage: 'Your edX subscription trial expires today.',
|
|
23
|
+
},
|
|
24
|
+
activeTrialSubscriptionTitleTomorrow: {
|
|
25
|
+
id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitleTomorrow',
|
|
26
|
+
description: 'Message to learners with a trial subscription expiring tomorrow',
|
|
27
|
+
defaultMessage: 'Your edX subscription trial expires tomorrow.',
|
|
17
28
|
},
|
|
18
29
|
activeTrialSubscriptionBody: {
|
|
19
|
-
id: 'learner-dash.
|
|
30
|
+
id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionBody',
|
|
20
31
|
description: 'Message to learners with an active trial subscription',
|
|
21
|
-
defaultMessage: 'Your subscription will renew on {
|
|
32
|
+
defaultMessage: 'Your subscription will renew on {subscriptionEndDate}.',
|
|
22
33
|
},
|
|
23
34
|
cancelledSubscriptionTitle: {
|
|
24
|
-
id: 'learner-dash.
|
|
25
|
-
description: 'Message to learners with
|
|
35
|
+
id: 'learner-dash.subscriptionBanner.banners.cancelledSubscriptionTitle',
|
|
36
|
+
description: 'Message to learners with a cancelled subscription',
|
|
26
37
|
defaultMessage: 'Your subscription is cancelled',
|
|
27
38
|
},
|
|
28
39
|
cancelledSubscriptionBody: {
|
|
29
|
-
id: 'learner-dash.
|
|
30
|
-
description: 'Message to learners with
|
|
40
|
+
id: 'learner-dash.subscriptionBanner.banners.cancelledSubscriptionBody',
|
|
41
|
+
description: 'Message to learners with a cancelled subscription',
|
|
31
42
|
defaultMessage: 'Your subscription expired on {subscriptionEndDate}. Renew now to continue enjoying your courses without interruption.',
|
|
32
43
|
},
|
|
33
44
|
renewSubscriptionButton: {
|
|
34
|
-
id: 'learner-dash.
|
|
45
|
+
id: 'learner-dash.subscriptionBanner.banners.renewSubscriptionButton',
|
|
35
46
|
description: 'Renew Subscription',
|
|
36
47
|
defaultMessage: 'Renew Subscription',
|
|
37
48
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/containers/SubscriptionBanner/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,uBAAuB,EAAE;QACvB,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/containers/SubscriptionBanner/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,yHAAyH;AACzH,MAAM,QAAQ,GAAG,cAAc,CAAC;IAC9B,uBAAuB,EAAE;QACvB,EAAE,EAAE,iEAAiE;QACrE,WAAW,EAAE,iDAAiD;QAC9D,cAAc,EAAE,iCAAiC;KAClD;IACD,sBAAsB,EAAE;QACtB,EAAE,EAAE,gEAAgE;QACpE,WAAW,EAAE,iDAAiD;QAC9D,cAAc,EAAE,mIAAmI;KACpJ;IACD,4BAA4B,EAAE;QAC5B,EAAE,EAAE,sEAAsE;QAC1E,WAAW,EAAE,uDAAuD;QACpE,cAAc,EAAE,yDAAyD;KAC1E;IACD,iCAAiC,EAAE;QACjC,EAAE,EAAE,2EAA2E;QAC/E,WAAW,EAAE,8DAA8D;QAC3E,cAAc,EAAE,4CAA4C;KAC7D;IACD,oCAAoC,EAAE;QACpC,EAAE,EAAE,8EAA8E;QAClF,WAAW,EAAE,iEAAiE;QAC9E,cAAc,EAAE,+CAA+C;KAChE;IACD,2BAA2B,EAAE;QAC3B,EAAE,EAAE,qEAAqE;QACzE,WAAW,EAAE,uDAAuD;QACpE,cAAc,EAAE,wDAAwD;KACzE;IACD,0BAA0B,EAAE;QAC1B,EAAE,EAAE,oEAAoE;QACxE,WAAW,EAAE,mDAAmD;QAChE,cAAc,EAAE,gCAAgC;KACjD;IACD,yBAAyB,EAAE;QACzB,EAAE,EAAE,mEAAmE;QACvE,WAAW,EAAE,mDAAmD;QAChE,cAAc,EAAE,uHAAuH;KACxI;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,iEAAiE;QACrE,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,oBAAoB;KACrC;CACF,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC","sourcesContent":["import { defineMessages } from '@openedx/frontend-base';\n\n// TODO: Update the messages as per new designs once we have the designs ready for subscription types other than 'trial'.\nconst messages = defineMessages({\n activeSubscriptionTitle: {\n id: 'learner-dash.subscriptionBanner.banners.activeSubscriptionTitle',\n description: 'Message to learners with an active subscription',\n defaultMessage: 'Your subscription is now active',\n },\n activeSubscriptionBody: {\n id: 'learner-dash.subscriptionBanner.banners.activeSubscriptionBody',\n description: 'Message to learners with an active subscription',\n defaultMessage: 'On {subscriptionStartDate} you subscribed to edX subscription product. Your subscription will renew on {subscriptionRenewalDate}.',\n },\n activeTrialSubscriptionTitle: {\n id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitle',\n description: 'Message to learners with an active trial subscription',\n defaultMessage: 'Your edX subscription trial expires in {daysLeft} days.',\n },\n activeTrialSubscriptionTitleToday: {\n id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitleToday',\n description: 'Message to learners with a trial subscription expiring today',\n defaultMessage: 'Your edX subscription trial expires today.',\n },\n activeTrialSubscriptionTitleTomorrow: {\n id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionTitleTomorrow',\n description: 'Message to learners with a trial subscription expiring tomorrow',\n defaultMessage: 'Your edX subscription trial expires tomorrow.',\n },\n activeTrialSubscriptionBody: {\n id: 'learner-dash.subscriptionBanner.banners.activeTrialSubscriptionBody',\n description: 'Message to learners with an active trial subscription',\n defaultMessage: 'Your subscription will renew on {subscriptionEndDate}.',\n },\n cancelledSubscriptionTitle: {\n id: 'learner-dash.subscriptionBanner.banners.cancelledSubscriptionTitle',\n description: 'Message to learners with a cancelled subscription',\n defaultMessage: 'Your subscription is cancelled',\n },\n cancelledSubscriptionBody: {\n id: 'learner-dash.subscriptionBanner.banners.cancelledSubscriptionBody',\n description: 'Message to learners with a cancelled subscription',\n defaultMessage: 'Your subscription expired on {subscriptionEndDate}. Renew now to continue enjoying your courses without interruption.',\n },\n renewSubscriptionButton: {\n id: 'learner-dash.subscriptionBanner.banners.renewSubscriptionButton',\n description: 'Renew Subscription',\n defaultMessage: 'Renew Subscription',\n },\n});\n\nexport default messages;\n"]}
|