@edx/frontend-app-subscription-learner-dashboard 1.62.0 → 1.63.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/tracking/constants.js +10 -0
- package/dist/tracking/constants.js.map +1 -1
- package/dist/widgets/LearnerDashboardHeader/SiteLogo.js +6 -1
- package/dist/widgets/LearnerDashboardHeader/SiteLogo.js.map +1 -1
- package/dist/widgets/LearnerDashboardHeader/app.js +12 -7
- package/dist/widgets/LearnerDashboardHeader/app.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ export const categories = StrictDict({
|
|
|
6
6
|
credit: 'credit',
|
|
7
7
|
filter: 'filter',
|
|
8
8
|
footer: 'footer',
|
|
9
|
+
header: 'header',
|
|
9
10
|
});
|
|
10
11
|
export const events = StrictDict({
|
|
11
12
|
courseCardActionClicked: 'courseCardActionClicked',
|
|
@@ -49,6 +50,15 @@ export const eventNames = StrictDict({
|
|
|
49
50
|
footerConnectLinksClicked: 'edx.bi.footer.connect_links.clicked',
|
|
50
51
|
footerLegalLinksClicked: 'edx.bi.footer.legal_links.clicked',
|
|
51
52
|
programCardActionClicked: 'edx.subscription.dashboard.program_card_action.clicked',
|
|
53
|
+
headerLogoClicked: 'edx.bi.header.logo.clicked',
|
|
54
|
+
headerProgramsLinkClicked: 'edx.bi.header.programs_link.clicked',
|
|
55
|
+
headerDiscoverLinkClicked: 'edx.bi.header.discover_link.clicked',
|
|
56
|
+
headerCoursesLinkClicked: 'edx.bi.header.courses_link.clicked',
|
|
57
|
+
headerSupportLinkClicked: 'edx.bi.header.support_link.clicked',
|
|
58
|
+
headerOrderHistoryLinkClicked: 'edx.bi.header.order_history_link.clicked',
|
|
59
|
+
headerDashboardLinkClicked: 'edx.bi.header.dashboard_link.clicked',
|
|
60
|
+
headerManageSubscriptionClicked: 'edx.bi.header.manage_subscription.clicked',
|
|
61
|
+
headerUserSignOut: 'edx.bi.header.menu.sign_out.clicked',
|
|
52
62
|
});
|
|
53
63
|
export const linkNames = StrictDict({
|
|
54
64
|
learnerHomeNavExplore: 'learner_home_nav_explore',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tracking/constants.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,iBAAiB;IACjC,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;IAC/B,uBAAuB,EAAE,yBAAyB;IAClD,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,4BAA4B,EAAE,8BAA8B;IAC5D,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,uBAAuB,EAAE,uDAAuD;IAChF,kBAAkB,EAAE,iDAAiD;IACrE,kBAAkB,EAAE,iDAAiD;IACrE,4BAA4B,EAAE,4DAA4D;IAC1F,oBAAoB,EAAE,oDAAoD;IAC1E,qBAAqB,EAAE,qDAAqD;IAC5E,YAAY,EAAE,0BAA0B;IACxC,sBAAsB,EAAE,oDAAoD;IAC5E,mBAAmB,EAAE,2BAA2B;IAChD,UAAU,EAAE,8BAA8B;IAC1C,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,gCAAgC;IAC9C,cAAc,EAAE,8BAA8B;IAC9C,yBAAyB,EAAE,0CAA0C;IACrE,kBAAkB,EAAE,wDAAwD;IAC5E,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,iCAAiC;IAChD,oBAAoB,EAAE,yCAAyC;IAC/D,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,qBAAqB,EAAE,iCAAiC;IACxD,yBAAyB,EAAE,qCAAqC;IAChE,uBAAuB,EAAE,mCAAmC;IAC5D,wBAAwB,EAAE,wDAAwD;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tracking/constants.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,SAAS,EAAE,WAAW;IACtB,cAAc,EAAE,iBAAiB;IACjC,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC;IAC/B,uBAAuB,EAAE,yBAAyB;IAClD,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,4BAA4B,EAAE,8BAA8B;IAC5D,YAAY,EAAE,cAAc;IAC5B,mBAAmB,EAAE,qBAAqB;IAC1C,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;IAChC,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;CACrD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;IACnC,uBAAuB,EAAE,uDAAuD;IAChF,kBAAkB,EAAE,iDAAiD;IACrE,kBAAkB,EAAE,iDAAiD;IACrE,4BAA4B,EAAE,4DAA4D;IAC1F,oBAAoB,EAAE,oDAAoD;IAC1E,qBAAqB,EAAE,qDAAqD;IAC5E,YAAY,EAAE,0BAA0B;IACxC,sBAAsB,EAAE,oDAAoD;IAC5E,mBAAmB,EAAE,2BAA2B;IAChD,UAAU,EAAE,8BAA8B;IAC1C,aAAa,EAAE,iCAAiC;IAChD,YAAY,EAAE,gCAAgC;IAC9C,cAAc,EAAE,8BAA8B;IAC9C,yBAAyB,EAAE,0CAA0C;IACrE,kBAAkB,EAAE,wDAAwD;IAC5E,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,iCAAiC;IAChD,oBAAoB,EAAE,yCAAyC;IAC/D,iBAAiB,EAAE,4BAA4B;IAC/C,uBAAuB,EAAE,mCAAmC;IAC5D,qBAAqB,EAAE,iCAAiC;IACxD,yBAAyB,EAAE,qCAAqC;IAChE,uBAAuB,EAAE,mCAAmC;IAC5D,wBAAwB,EAAE,wDAAwD;IAClF,iBAAiB,EAAE,4BAA4B;IAC/C,yBAAyB,EAAE,qCAAqC;IAChE,yBAAyB,EAAE,qCAAqC;IAChE,wBAAwB,EAAE,oCAAoC;IAC9D,wBAAwB,EAAE,oCAAoC;IAC9D,6BAA6B,EAAE,0CAA0C;IACzE,0BAA0B,EAAE,sCAAsC;IAClE,+BAA+B,EAAE,2CAA2C;IAC5E,iBAAiB,EAAE,qCAAqC;CACzD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,qBAAqB,EAAE,0BAA0B;IACjD,6BAA6B,EAAE,mCAAmC;CACnE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,cAAc,CAAC;AAEtC,eAAe,UAAU,CAAC","sourcesContent":["import { StrictDict } from '../utils';\n\nexport const categories = StrictDict({\n dashboard: 'dashboard',\n userEngagement: 'user-engagement',\n searchButton: 'search_button',\n credit: 'credit',\n filter: 'filter',\n footer: 'footer',\n header: 'header',\n});\n\nexport const events = StrictDict({\n courseCardActionClicked: 'courseCardActionClicked',\n courseImageClicked: 'courseImageClicked',\n courseTitleClicked: 'courseTitleClicked',\n courseOptionsDropdownClicked: 'courseOptionsDropdownClicked',\n shareClicked: 'shareClicked',\n userSettingsChanged: 'userSettingsChanged',\n newSession: 'newSession',\n switchSession: 'switchSession',\n leaveSession: 'leaveSession',\n unenrollReason: 'unenrollReason',\n entitlementUnenrollReason: 'entitlementUnenrollReason',\n noCoursesViewClicked: 'noCoursesViewClicked',\n noProgramsViewClicked: 'noProgramsViewClicked',\n courseListPageSelected: 'courseListPageSelected',\n programCardActionClicked: 'programCardActionClicked',\n});\n\nexport const eventNames = StrictDict({\n courseCardActionClicked: 'edx.subscription.dashboard.course_card_action.clicked',\n courseImageClicked: 'edx.subscription.dashboard.course_image.clicked',\n courseTitleClicked: 'edx.subscription.dashboard.course_title.clicked',\n courseOptionsDropdownClicked: 'edx.subscription.dashboard.course_options_dropdown.clicked',\n noCoursesViewClicked: 'edx.subscription.dashboard.no_courses_view.clicked',\n noProgramsViewClicked: 'edx.subscription.dashboard.no_programs_view.clicked',\n shareClicked: 'edx.course.share_clicked',\n courseListPageSelected: 'edx.subscription.learner.course.list.page.selected',\n userSettingsChanged: 'edx.user.settings.changed',\n newSession: 'course-dashboard.new-session',\n switchSession: 'course-dashboard.switch-session',\n leaveSession: 'course-dashboard.leave-session',\n unenrollReason: 'unenrollment_reason.selected',\n entitlementUnenrollReason: 'entitlement_unenrollment_reason.selected',\n findCoursesClicked: 'edx.subscription.dashboard.find_courses_button.clicked',\n purchaseCredit: 'edx.subscription.dashboard.clicked_purchase_credit',\n filterClicked: 'course-dashboard.filter.clicked',\n filterOptionSelected: 'course-dashboard.filter_option.selected',\n footerLogoClicked: 'edx.bi.footer.logo.clicked',\n footerSocialLinkClicked: 'edx.bi.footer.social_link.clicked',\n footerEdxLinksClicked: 'edx.bi.footer.edx_links.clicked',\n footerConnectLinksClicked: 'edx.bi.footer.connect_links.clicked',\n footerLegalLinksClicked: 'edx.bi.footer.legal_links.clicked',\n programCardActionClicked: 'edx.subscription.dashboard.program_card_action.clicked',\n headerLogoClicked: 'edx.bi.header.logo.clicked',\n headerProgramsLinkClicked: 'edx.bi.header.programs_link.clicked',\n headerDiscoverLinkClicked: 'edx.bi.header.discover_link.clicked',\n headerCoursesLinkClicked: 'edx.bi.header.courses_link.clicked',\n headerSupportLinkClicked: 'edx.bi.header.support_link.clicked',\n headerOrderHistoryLinkClicked: 'edx.bi.header.order_history_link.clicked',\n headerDashboardLinkClicked: 'edx.bi.header.dashboard_link.clicked',\n headerManageSubscriptionClicked: 'edx.bi.header.manage_subscription.clicked',\n headerUserSignOut: 'edx.bi.header.menu.sign_out.clicked',\n});\n\nexport const linkNames = StrictDict({\n learnerHomeNavExplore: 'learner_home_nav_explore',\n learnerHomeNavDropdownExplore: 'learner_home_nav_dropdown_explore',\n});\n\nexport const appName = 'learner-home';\n\nexport default eventNames;\n"]}
|
|
@@ -4,10 +4,15 @@ import { getSiteConfig } from '@openedx/frontend-base';
|
|
|
4
4
|
import EdxDesktop from '../../assets/Unlimited-desktop.svg';
|
|
5
5
|
import EdxTablet from '../../assets/Unlimited-tablet.svg';
|
|
6
6
|
import EdxMobile from '../../assets/Unlimited-mobile.svg';
|
|
7
|
+
import { createEventTracker } from '../../data/services/segment/utils';
|
|
8
|
+
import eventNames, { categories } from '../../tracking/constants';
|
|
7
9
|
export default function SiteLogo({ destinationUrl }) {
|
|
8
10
|
var _a;
|
|
9
11
|
const siteConfig = getSiteConfig();
|
|
10
12
|
const dest = (_a = destinationUrl !== null && destinationUrl !== void 0 ? destinationUrl : siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.baseUrl) !== null && _a !== void 0 ? _a : '/';
|
|
11
|
-
|
|
13
|
+
const handleLogoClick = () => {
|
|
14
|
+
createEventTracker(eventNames.headerLogoClicked, { category: categories.header, label: dest })();
|
|
15
|
+
};
|
|
16
|
+
return (_jsx(Hyperlink, { destination: dest, className: "p-0", onClick: handleLogoClick, children: _jsxs("picture", { className: "site-logo", children: [_jsx("source", { media: "(min-width: 1024px)", srcSet: EdxDesktop }), _jsx("source", { media: "(min-width: 768px)", srcSet: EdxTablet }), _jsx(Image, { src: EdxMobile, style: { maxHeight: '2rem' } })] }) }));
|
|
12
17
|
}
|
|
13
18
|
//# sourceMappingURL=SiteLogo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SiteLogo.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/SiteLogo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAC5D,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,SAAS,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"SiteLogo.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/SiteLogo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,UAAU,MAAM,oCAAoC,CAAC;AAC5D,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,SAAS,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMjE,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAAE,cAAc,EAAiB;;IAChE,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,MAAA,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,mCAAI,GAAG,CAAC;IAE1D,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,kBAAkB,CAChB,UAAU,CAAC,iBAAiB,EAC5B,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAC7C,EAAE,CAAC;IACN,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,SAAS,IAAC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAC,KAAK,EAAC,OAAO,EAAE,eAAe,YACpE,mBAAS,SAAS,EAAC,WAAW,aAE5B,iBAAQ,KAAK,EAAC,qBAAqB,EAAC,MAAM,EAAE,UAAU,GAAI,EAC1D,iBAAQ,KAAK,EAAC,oBAAoB,EAAC,MAAM,EAAE,SAAS,GAAI,EAExD,KAAC,KAAK,IAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAI,IAC/C,GACA,CACb,CAAC;AACJ,CAAC","sourcesContent":["import { Hyperlink, Image } from '@openedx/paragon';\nimport { getSiteConfig } from '@openedx/frontend-base';\nimport EdxDesktop from '../../assets/Unlimited-desktop.svg';\nimport EdxTablet from '../../assets/Unlimited-tablet.svg';\nimport EdxMobile from '../../assets/Unlimited-mobile.svg';\nimport { createEventTracker } from '@src/data/services/segment/utils';\nimport eventNames, { categories } from '@src/tracking/constants';\n\ninterface SiteLogoProps {\n destinationUrl?: string,\n}\n\nexport default function SiteLogo({ destinationUrl }: SiteLogoProps) {\n const siteConfig = getSiteConfig();\n const dest = destinationUrl ?? siteConfig?.baseUrl ?? '/';\n\n const handleLogoClick = () => {\n createEventTracker(\n eventNames.headerLogoClicked,\n { category: categories.header, label: dest }\n )();\n };\n\n return (\n <Hyperlink destination={dest} className=\"p-0\" onClick={handleLogoClick}>\n <picture className=\"site-logo\">\n {/* Desktop: adjust min-width values to your breakpoints */}\n <source media=\"(min-width: 1024px)\" srcSet={EdxDesktop} />\n <source media=\"(min-width: 768px)\" srcSet={EdxTablet} />\n {/* fallback/mobile */}\n <Image src={EdxMobile} style={{ maxHeight: '2rem' }} />\n </picture>\n </Hyperlink>\n );\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { LinkMenuItem, WidgetOperationTypes, getAppConfig, } from '@openedx/frontend-base';
|
|
3
3
|
import { appId, subscriptionDashboardUrlPath, subscriptionSignoutRole, SUBSCRIPTION_ROUTE_PREFIXES, } from '../../constants';
|
|
4
|
+
import { createEventTracker } from '../../data/services/segment/utils';
|
|
5
|
+
import { categories, eventNames } from '../../tracking/constants';
|
|
4
6
|
import ConfirmEmailBanner from './ConfirmEmailBanner';
|
|
5
7
|
import ProgramsLinkMenuItem from './ProgramsLinkMenuItem';
|
|
6
8
|
import SupportLinkMenuItem from './SupportLinkMenuItem';
|
|
@@ -8,6 +10,9 @@ import OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';
|
|
|
8
10
|
import messages from '../../messages';
|
|
9
11
|
import CustomAvatarMenu from './CustomAvatarMenu';
|
|
10
12
|
import SiteLogo from './SiteLogo';
|
|
13
|
+
const trackHeaderLinkClick = (url, eventName) => {
|
|
14
|
+
createEventTracker(eventName, { category: categories.header, label: url })();
|
|
15
|
+
};
|
|
11
16
|
const isSubscriptionContext = () => {
|
|
12
17
|
var _a;
|
|
13
18
|
if (typeof window === 'undefined') {
|
|
@@ -33,7 +38,7 @@ const app = {
|
|
|
33
38
|
slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',
|
|
34
39
|
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',
|
|
35
40
|
op: WidgetOperationTypes.APPEND,
|
|
36
|
-
element: _jsx(ProgramsLinkMenuItem, { variant: "navLink" }),
|
|
41
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick('programs', eventNames.headerProgramsLinkClicked), children: _jsx(ProgramsLinkMenuItem, { variant: "navLink" }) })),
|
|
37
42
|
condition: {
|
|
38
43
|
callback: () => getAppConfig(appId).ENABLE_PROGRAMS === true
|
|
39
44
|
&& isSubscriptionContext(),
|
|
@@ -43,7 +48,7 @@ const app = {
|
|
|
43
48
|
slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
|
|
44
49
|
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkSupport.v1',
|
|
45
50
|
op: WidgetOperationTypes.APPEND,
|
|
46
|
-
element: _jsx(SupportLinkMenuItem, { variant: "dropdownItem" }),
|
|
51
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick('support', eventNames.headerSupportLinkClicked), children: _jsx(SupportLinkMenuItem, { variant: "dropdownItem" }) })),
|
|
47
52
|
condition: {
|
|
48
53
|
callback: () => Boolean(getAppConfig(appId).SUPPORT_URL) && isSubscriptionContext(),
|
|
49
54
|
},
|
|
@@ -53,7 +58,7 @@ const app = {
|
|
|
53
58
|
id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',
|
|
54
59
|
op: WidgetOperationTypes.INSERT_BEFORE,
|
|
55
60
|
relatedId: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',
|
|
56
|
-
element: _jsx(OrderHistoryLinkMenuItem, { variant: "navLink" }),
|
|
61
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick('order-history', eventNames.headerOrderHistoryLinkClicked), children: _jsx(OrderHistoryLinkMenuItem, { variant: "navLink" }) })),
|
|
57
62
|
condition: {
|
|
58
63
|
callback: () => Boolean(getAppConfig(appId).ORDER_HISTORY_URL)
|
|
59
64
|
&& isSubscriptionContext(),
|
|
@@ -63,7 +68,7 @@ const app = {
|
|
|
63
68
|
slotId: 'org.openedx.frontend.slot.header.desktopRight.v1',
|
|
64
69
|
id: 'org.edx.frontend.widget.learnerHome.headerLinkDashboard.v1',
|
|
65
70
|
op: WidgetOperationTypes.PREPEND,
|
|
66
|
-
element: (_jsx("div", { className: "px-3 dashboard-header-navlink", children: _jsx(LinkMenuItem, { label: messages['header.user.menu.dashboard'].defaultMessage, url: subscriptionDashboardUrlPath, variant: "hyperlink" }) })),
|
|
71
|
+
element: (_jsx("div", { className: "px-3 dashboard-header-navlink", onClick: () => trackHeaderLinkClick(subscriptionDashboardUrlPath, eventNames.headerDashboardLinkClicked), children: _jsx(LinkMenuItem, { label: messages['header.user.menu.dashboard'].defaultMessage, url: subscriptionDashboardUrlPath, variant: "hyperlink" }) })),
|
|
67
72
|
condition: {
|
|
68
73
|
callback: () => isSubscriptionContext(),
|
|
69
74
|
},
|
|
@@ -72,7 +77,7 @@ const app = {
|
|
|
72
77
|
slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
|
|
73
78
|
id: 'org.edx.frontend.widget.header.user.menu.manageSubscription.v1',
|
|
74
79
|
op: WidgetOperationTypes.APPEND,
|
|
75
|
-
element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.manageSubscription'].defaultMessage, url: "/manage-subscription", variant: "dropdownItem" })),
|
|
80
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick('/manage-subscription', eventNames.headerManageSubscriptionClicked), children: _jsx(LinkMenuItem, { label: messages['header.user.menu.manageSubscription'].defaultMessage, url: "/manage-subscription", variant: "dropdownItem" }) })),
|
|
76
81
|
condition: {
|
|
77
82
|
callback: () => isSubscriptionContext(),
|
|
78
83
|
},
|
|
@@ -81,13 +86,13 @@ const app = {
|
|
|
81
86
|
slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
|
|
82
87
|
id: 'org.edx.frontend.widget.learnerDashboard.headerAuthenticatedMenuSignOut.v1',
|
|
83
88
|
op: WidgetOperationTypes.APPEND,
|
|
84
|
-
element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.signOut'].defaultMessage, role: subscriptionSignoutRole, variant: "dropdownItem" })),
|
|
89
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick('', eventNames.headerUserSignOut), children: _jsx(LinkMenuItem, { label: messages['header.user.menu.signOut'].defaultMessage, role: subscriptionSignoutRole, variant: "dropdownItem" }) })),
|
|
85
90
|
},
|
|
86
91
|
{
|
|
87
92
|
slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',
|
|
88
93
|
id: 'org.edx.frontend.widget.learnerDashboard.dashboard.v1',
|
|
89
94
|
op: WidgetOperationTypes.PREPEND,
|
|
90
|
-
element: (_jsx(LinkMenuItem, { label: messages['header.user.menu.dashboard'].defaultMessage, url: subscriptionDashboardUrlPath, variant: "dropdownItem" })),
|
|
95
|
+
element: (_jsx("div", { onClick: () => trackHeaderLinkClick(subscriptionDashboardUrlPath, eventNames.headerDashboardLinkClicked), children: _jsx(LinkMenuItem, { label: messages['header.user.menu.dashboard'].defaultMessage, url: subscriptionDashboardUrlPath, variant: "dropdownItem" }) })),
|
|
91
96
|
condition: {
|
|
92
97
|
callback: () => isSubscriptionContext(),
|
|
93
98
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/app.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,YAAY,EACZ,oBAAoB,EACpB,YAAY,GACb,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,KAAK,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,qBAAqB,GAAG,GAAG,EAAE;;IACjC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,QAAQ,KAAI,EAAE,CAAC;IAEjD,+DAA+D;IAC/D,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAC5B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,KAAK,EAAE,kDAAkD;IACzD,KAAK,EAAE;QACL;YACE,MAAM,EAAE,0CAA0C;YAClD,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;aACxC;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,KAAC,oBAAoB,IAAC,OAAO,EAAC,SAAS,GAAG;YACnD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CACb,YAAY,CAAC,KAAK,CAAC,CAAC,eAAe,KAAK,IAAI;uBACzC,qBAAqB,EAAE;aAC7B;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,mEAAmE;YACvE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,KAAC,mBAAmB,IAAC,OAAO,EAAC,cAAc,GAAG;YACvD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CACb,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,qBAAqB,EAAE;aACtE;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,wEAAwE;YAC5E,EAAE,EAAE,oBAAoB,CAAC,aAAa;YACtC,SAAS,EACP,sEAAsE;YACxE,OAAO,EAAE,KAAC,wBAAwB,IAAC,OAAO,EAAC,SAAS,GAAG;YACvD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CACb,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;uBAC3C,qBAAqB,EAAE;aAC7B;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,4DAA4D;YAChE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,OAAO,EAAE,CACP,cAAK,SAAS,EAAC,+BAA+B,YAC5C,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,cAAc,EAC5D,GAAG,EAAE,4BAA4B,EACjC,OAAO,EAAC,WAAW,GACnB,GACE,CACP;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;aACxC;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,gEAAgE;YACpE,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,CAAC,qCAAqC,CAAC,CAAC,cAAc,EACrE,GAAG,EAAC,sBAAsB,EAC1B,OAAO,EAAC,cAAc,GACtB,CACH;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;aACxC;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,4EAA4E;YAChF,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,CACP,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,CAAC,0BAA0B,CAAC,CAAC,cAAc,EAC1D,IAAI,EAAE,uBAAuB,EAC7B,OAAO,EAAC,cAAc,GACtB,CACH;SACF;QACD;YACE,MAAM,EAAE,uDAAuD;YAC/D,EAAE,EAAE,uDAAuD;YAC3D,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,OAAO,EAAE,CACP,KAAC,YAAY,IACX,KAAK,EAAE,QAAQ,CAAC,4BAA4B,CAAC,CAAC,cAAc,EAC5D,GAAG,EAAE,4BAA4B,EACjC,OAAO,EAAC,cAAc,GACtB,CACH;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,EAAE;aACxC;SACF;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,gEAAgE;YACpE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EACP,gEAAgE;YAClE,OAAO,EAAE,KAAC,gBAAgB,KAAG;YAC7B,SAAS,EAAE;gBACT,aAAa,EAAE,IAAI;aACpB;SACF;QACD;YACE,MAAM,EAAE,iDAAiD;YACzD,EAAE,EAAE,2DAA2D;YAC/D,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EACP,+DAA+D;YACjE,OAAO,EAAE,KAAC,gBAAgB,KAAG;YAC7B,SAAS,EAAE;gBACT,aAAa,EAAE,IAAI;aACpB;SACF;QACD;YACE,MAAM,EAAE,iDAAiD;YACzD,EAAE,EAAE,oEAAoE;YACxE,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,mDAAmD;YAC9D,OAAO,EAAE,KAAC,QAAQ,KAAG;SACtB;QACD;YACE,MAAM,EAAE,gDAAgD;YACxD,EAAE,EAAE,kDAAkD;YACtD,EAAE,EAAE,oBAAoB,CAAC,MAAM;YAC/B,OAAO,EAAE,KAAC,QAAQ,KAAG;SACtB;QACD;YACE,MAAM,EAAE,kDAAkD;YAC1D,EAAE,EAAE,2DAA2D;YAC/D,EAAE,EAAE,oBAAoB,CAAC,OAAO;YAChC,SAAS,EAAE,kDAAkD;YAC7D,OAAO,EAAE,mBAAK;SACf;QACD,IAAI;QACJ,8GAA8G;QAC9G,yDAAyD;QACzD,qEAAqE;QACrE,6FAA6F;QAC7F,sCAAsC;QACtC,eAAe;QACf,oBAAoB;QACpB,uEAAuE;QACvE,2BAA2B;QAC3B,+BAA+B;QAC/B,SAAS;QACT,MAAM;QACN,KAAK;KACN;CACF,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import {\n App,\n LinkMenuItem,\n WidgetOperationTypes,\n getAppConfig,\n} from '@openedx/frontend-base';\n\nimport {\n appId,\n subscriptionDashboardUrlPath,\n subscriptionSignoutRole,\n SUBSCRIPTION_ROUTE_PREFIXES,\n} from '../../constants';\n\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\nimport ProgramsLinkMenuItem from './ProgramsLinkMenuItem';\nimport SupportLinkMenuItem from './SupportLinkMenuItem';\nimport OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';\nimport messages from '@src/messages';\nimport CustomAvatarMenu from './CustomAvatarMenu';\nimport SiteLogo from './SiteLogo';\n\nconst isSubscriptionContext = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n const pathname = window.location?.pathname || '';\n\n // Add/remove prefixes based on your actual subscription routes\n return SUBSCRIPTION_ROUTE_PREFIXES.some((prefix) =>\n pathname.startsWith(prefix),\n );\n};\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.header',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ConfirmEmailBanner,\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',\n op: WidgetOperationTypes.APPEND,\n element: <ProgramsLinkMenuItem variant=\"navLink\" />,\n condition: {\n callback: () =>\n getAppConfig(appId).ENABLE_PROGRAMS === true\n && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkSupport.v1',\n op: WidgetOperationTypes.APPEND,\n element: <SupportLinkMenuItem variant=\"dropdownItem\" />,\n condition: {\n callback: () =>\n Boolean(getAppConfig(appId).SUPPORT_URL) && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',\n op: WidgetOperationTypes.INSERT_BEFORE,\n relatedId:\n 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',\n element: <OrderHistoryLinkMenuItem variant=\"navLink\" />,\n condition: {\n callback: () =>\n Boolean(getAppConfig(appId).ORDER_HISTORY_URL)\n && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopRight.v1',\n id: 'org.edx.frontend.widget.learnerHome.headerLinkDashboard.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <div className=\"px-3 dashboard-header-navlink\">\n <LinkMenuItem\n label={messages['header.user.menu.dashboard'].defaultMessage}\n url={subscriptionDashboardUrlPath}\n variant=\"hyperlink\"\n />\n </div>\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.header.user.menu.manageSubscription.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.manageSubscription'].defaultMessage}\n url=\"/manage-subscription\"\n variant=\"dropdownItem\"\n />\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.learnerDashboard.headerAuthenticatedMenuSignOut.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.signOut'].defaultMessage}\n role={subscriptionSignoutRole}\n variant=\"dropdownItem\"\n />\n ),\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.learnerDashboard.dashboard.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <LinkMenuItem\n label={messages['header.user.menu.dashboard'].defaultMessage}\n url={subscriptionDashboardUrlPath}\n variant=\"dropdownItem\"\n />\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopRight.v1',\n id: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenu.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId:\n 'org.openedx.frontend.widget.header.desktopAuthenticatedMenu.v1',\n element: <CustomAvatarMenu />,\n condition: {\n authenticated: true,\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileRight.v1',\n id: 'org.example.site.widget.header.mobileAuthenticatedMenu.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId:\n 'org.openedx.frontend.widget.header.mobileAuthenticatedMenu.v1',\n element: <CustomAvatarMenu />,\n condition: {\n authenticated: true,\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopLeft.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.header.desktopLogo.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId: 'org.openedx.frontend.widget.header.desktopLogo.v1',\n element: <SiteLogo />,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileLeft.v1',\n id: 'org.example.site.widget.header.mobileLogoLeft.v1',\n op: WidgetOperationTypes.APPEND,\n element: <SiteLogo />,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileCenter.v1',\n id: 'org.example.site.widget.header.mobileLogoCenterReplace.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId: 'org.openedx.frontend.widget.header.mobileLogo.v1',\n element: <></>,\n },\n // {\n // // TO-DO : Resume your last course will be implemented seprately in a different ticket.(Ticket: SUBS-818)\n // // https://2u-internal.atlassian.net/browse/SUBS-818\n // slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n // id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuLastCourse.v1',\n // op: WidgetOperationTypes.PREPEND,\n // element: (\n // <LinkMenuItem\n // label={messages['header.user.menu.lastCourse'].defaultMessage}\n // url=\"/last-course\"\n // variant=\"dropdownItem\"\n // />\n // )\n // },\n ],\n};\n\nexport default app;\n"]}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/widgets/LearnerDashboardHeader/app.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n App,\n LinkMenuItem,\n WidgetOperationTypes,\n getAppConfig,\n} from '@openedx/frontend-base';\n\nimport {\n appId,\n subscriptionDashboardUrlPath,\n subscriptionSignoutRole,\n SUBSCRIPTION_ROUTE_PREFIXES,\n} from '../../constants';\n\nimport { createEventTracker } from '../../data/services/segment/utils';\nimport { categories, eventNames } from '../../tracking/constants';\n\nimport ConfirmEmailBanner from './ConfirmEmailBanner';\nimport ProgramsLinkMenuItem from './ProgramsLinkMenuItem';\nimport SupportLinkMenuItem from './SupportLinkMenuItem';\nimport OrderHistoryLinkMenuItem from './OrderHistoryLinkMenuItem';\nimport messages from '@src/messages';\nimport CustomAvatarMenu from './CustomAvatarMenu';\nimport SiteLogo from './SiteLogo';\n\nconst trackHeaderLinkClick = (url: string, eventName: string) => {\n createEventTracker(\n eventName,\n { category: categories.header, label: url }\n )();\n};\n\nconst isSubscriptionContext = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n const pathname = window.location?.pathname || '';\n\n // Add/remove prefixes based on your actual subscription routes\n return SUBSCRIPTION_ROUTE_PREFIXES.some((prefix) =>\n pathname.startsWith(prefix),\n );\n};\n\nconst app: App = {\n appId: 'org.openedx.frontend.app.learnerDashboard.header',\n slots: [\n {\n slotId: 'org.openedx.frontend.slot.header.main.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerConfirmEmail.v1',\n op: WidgetOperationTypes.PREPEND,\n component: ConfirmEmailBanner,\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.primaryLinks.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkPrograms.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <div onClick={() => trackHeaderLinkClick('programs', eventNames.headerProgramsLinkClicked)}>\n <ProgramsLinkMenuItem variant=\"navLink\" />\n </div>\n ),\n condition: {\n callback: () =>\n getAppConfig(appId).ENABLE_PROGRAMS === true\n && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkSupport.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <div onClick={() => trackHeaderLinkClick('support', eventNames.headerSupportLinkClicked)}>\n <SupportLinkMenuItem variant=\"dropdownItem\" />\n </div>\n ),\n condition: {\n callback: () =>\n Boolean(getAppConfig(appId).SUPPORT_URL) && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.headerLinkOrderHistory.v1',\n op: WidgetOperationTypes.INSERT_BEFORE,\n relatedId:\n 'org.openedx.frontend.widget.header.desktopAuthenticatedMenuLogout.v1',\n element: (\n <div onClick={() => trackHeaderLinkClick('order-history', eventNames.headerOrderHistoryLinkClicked)}>\n <OrderHistoryLinkMenuItem variant=\"navLink\" />\n </div>\n ),\n condition: {\n callback: () =>\n Boolean(getAppConfig(appId).ORDER_HISTORY_URL)\n && isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopRight.v1',\n id: 'org.edx.frontend.widget.learnerHome.headerLinkDashboard.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <div\n className=\"px-3 dashboard-header-navlink\"\n onClick={() => trackHeaderLinkClick(subscriptionDashboardUrlPath, eventNames.headerDashboardLinkClicked)}\n >\n <LinkMenuItem\n label={messages['header.user.menu.dashboard'].defaultMessage}\n url={subscriptionDashboardUrlPath}\n variant=\"hyperlink\"\n />\n </div>\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.header.user.menu.manageSubscription.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <div onClick={() => trackHeaderLinkClick('/manage-subscription', eventNames.headerManageSubscriptionClicked)}>\n <LinkMenuItem\n label={messages['header.user.menu.manageSubscription'].defaultMessage}\n url=\"/manage-subscription\"\n variant=\"dropdownItem\"\n />\n </div>\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.learnerDashboard.headerAuthenticatedMenuSignOut.v1',\n op: WidgetOperationTypes.APPEND,\n element: (\n <div onClick={() => trackHeaderLinkClick('', eventNames.headerUserSignOut)}>\n <LinkMenuItem\n label={messages['header.user.menu.signOut'].defaultMessage}\n role={subscriptionSignoutRole}\n variant=\"dropdownItem\"\n />\n </div>\n ),\n },\n {\n slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n id: 'org.edx.frontend.widget.learnerDashboard.dashboard.v1',\n op: WidgetOperationTypes.PREPEND,\n element: (\n <div onClick={() => trackHeaderLinkClick(subscriptionDashboardUrlPath, eventNames.headerDashboardLinkClicked)}>\n <LinkMenuItem\n label={messages['header.user.menu.dashboard'].defaultMessage}\n url={subscriptionDashboardUrlPath}\n variant=\"dropdownItem\"\n />\n </div>\n ),\n condition: {\n callback: () => isSubscriptionContext(),\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopRight.v1',\n id: 'org.openedx.frontend.widget.header.desktopAuthenticatedMenu.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId:\n 'org.openedx.frontend.widget.header.desktopAuthenticatedMenu.v1',\n element: <CustomAvatarMenu />,\n condition: {\n authenticated: true,\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileRight.v1',\n id: 'org.example.site.widget.header.mobileAuthenticatedMenu.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId:\n 'org.openedx.frontend.widget.header.mobileAuthenticatedMenu.v1',\n element: <CustomAvatarMenu />,\n condition: {\n authenticated: true,\n },\n },\n {\n slotId: 'org.openedx.frontend.slot.header.desktopLeft.v1',\n id: 'org.openedx.frontend.widget.learnerDashboard.header.desktopLogo.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId: 'org.openedx.frontend.widget.header.desktopLogo.v1',\n element: <SiteLogo />,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileLeft.v1',\n id: 'org.example.site.widget.header.mobileLogoLeft.v1',\n op: WidgetOperationTypes.APPEND,\n element: <SiteLogo />,\n },\n {\n slotId: 'org.openedx.frontend.slot.header.mobileCenter.v1',\n id: 'org.example.site.widget.header.mobileLogoCenterReplace.v1',\n op: WidgetOperationTypes.REPLACE,\n relatedId: 'org.openedx.frontend.widget.header.mobileLogo.v1',\n element: <></>,\n },\n // {\n // // TO-DO : Resume your last course will be implemented seprately in a different ticket.(Ticket: SUBS-818)\n // // https://2u-internal.atlassian.net/browse/SUBS-818\n // slotId: 'org.openedx.frontend.slot.header.authenticatedMenu.v1',\n // id: 'org.openedx.frontend.widget.learnerDashboard.headerAuthenticatedMenuLastCourse.v1',\n // op: WidgetOperationTypes.PREPEND,\n // element: (\n // <LinkMenuItem\n // label={messages['header.user.menu.lastCourse'].defaultMessage}\n // url=\"/last-course\"\n // variant=\"dropdownItem\"\n // />\n // )\n // },\n ],\n};\n\nexport default app;\n"]}
|