@nauedu/frontend-component-header 20.0.0 → 20.1.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/DesktopHeader.js +242 -0
- package/dist/DesktopHeader.js.map +1 -0
- package/dist/Header.js +9 -13
- package/dist/Header.js.map +1 -1
- package/dist/Header.test.jsx +0 -3
- package/dist/Icons.js +1 -1
- package/dist/LanguageSelector/data/api.js +5 -13
- package/dist/LanguageSelector/data/api.js.map +1 -1
- package/dist/LanguageSelector/index.js +4 -12
- package/dist/LanguageSelector/index.js.map +1 -1
- package/dist/Logo.js +23 -10
- package/dist/Logo.js.map +1 -1
- package/dist/Menu/Menu.js +11 -11
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/Menu/menu.scss +6 -6
- package/dist/MobileHeader.js +244 -0
- package/dist/MobileHeader.js.map +1 -0
- package/dist/__snapshots__/Header.test.jsx.snap +0 -2
- package/dist/index.scss +15 -27
- package/dist/learning-header/AnonymousUserMenu.js +8 -11
- package/dist/learning-header/AnonymousUserMenu.js.map +1 -1
- package/dist/learning-header/AuthenticatedUserDropdown.js +24 -32
- package/dist/learning-header/AuthenticatedUserDropdown.js.map +1 -1
- package/dist/learning-header/LearningHeader.js +14 -15
- package/dist/learning-header/LearningHeader.js.map +1 -1
- package/dist/learning-header/data/api.js +4 -12
- package/dist/learning-header/data/api.js.map +1 -1
- package/dist/learning-header/data/api.test.js +95 -92
- package/dist/learning-header/data/api.test.js.map +1 -1
- package/dist/learning-header/messages.js +0 -5
- package/dist/learning-header/messages.js.map +1 -1
- package/dist/setupTest.js +2 -0
- package/dist/studio-header/BrandNav.js +21 -0
- package/dist/studio-header/BrandNav.js.map +1 -0
- package/dist/studio-header/CourseLockUp.js +45 -0
- package/dist/studio-header/CourseLockUp.js.map +1 -0
- package/dist/studio-header/HeaderBody.js +131 -0
- package/dist/studio-header/HeaderBody.js.map +1 -0
- package/dist/studio-header/MobileHeader.js +79 -0
- package/dist/studio-header/MobileHeader.js.map +1 -0
- package/dist/studio-header/MobileMenu.js +45 -0
- package/dist/studio-header/MobileMenu.js.map +1 -0
- package/dist/studio-header/NavDropdownMenu.js +30 -0
- package/dist/studio-header/NavDropdownMenu.js.map +1 -0
- package/dist/studio-header/StudioHeader.js +72 -0
- package/dist/studio-header/StudioHeader.js.map +1 -0
- package/dist/studio-header/StudioHeader.scss +10 -8
- package/dist/studio-header/UserMenu.js +55 -0
- package/dist/studio-header/UserMenu.js.map +1 -0
- package/dist/studio-header/{index.ts → index.js} +1 -1
- package/dist/studio-header/index.js.map +1 -0
- package/dist/studio-header/{messages.ts → messages.js} +14 -15
- package/dist/studio-header/messages.js.map +1 -0
- package/dist/studio-header/utils.js +29 -0
- package/dist/studio-header/utils.js.map +1 -0
- package/dist/test-utils.js +4 -12
- package/dist/test-utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/desktop-header/DesktopHeader.js +0 -172
- package/dist/desktop-header/DesktopHeader.js.map +0 -1
- package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js +0 -51
- package/dist/desktop-header/DesktopHeaderMainOrSecondaryMenu.js.map +0 -1
- package/dist/desktop-header/DesktopHeaderUserMenu.js +0 -49
- package/dist/desktop-header/DesktopHeaderUserMenu.js.map +0 -1
- package/dist/desktop-header/DesktopLoggedOutItems.js +0 -22
- package/dist/desktop-header/DesktopLoggedOutItems.js.map +0 -1
- package/dist/desktop-header/DesktopUserMenuToggle.js +0 -25
- package/dist/desktop-header/DesktopUserMenuToggle.js.map +0 -1
- package/dist/frontend-platform.d.ts +0 -41
- package/dist/learning-header/LearningHeaderCourseInfo.js +0 -24
- package/dist/learning-header/LearningHeaderCourseInfo.js.map +0 -1
- package/dist/learning-header/LearningHeaderHelpLink.js +0 -13
- package/dist/learning-header/LearningHeaderHelpLink.js.map +0 -1
- package/dist/learning-header/LearningHeaderUserMenuItems.js +0 -20
- package/dist/learning-header/LearningHeaderUserMenuItems.js.map +0 -1
- package/dist/learning-header/LearningLoggedOutButtons.js +0 -24
- package/dist/learning-header/LearningLoggedOutButtons.js.map +0 -1
- package/dist/learning-header/LearningUserMenuToggle.js +0 -26
- package/dist/learning-header/LearningUserMenuToggle.js.map +0 -1
- package/dist/mobile-header/MobileHeader.js +0 -197
- package/dist/mobile-header/MobileHeader.js.map +0 -1
- package/dist/mobile-header/MobileHeaderMainMenu.js +0 -46
- package/dist/mobile-header/MobileHeaderMainMenu.js.map +0 -1
- package/dist/mobile-header/MobileHeaderUserMenu.js +0 -38
- package/dist/mobile-header/MobileHeaderUserMenu.js.map +0 -1
- package/dist/mobile-header/MobileLoggedOutItems.js +0 -27
- package/dist/mobile-header/MobileLoggedOutItems.js.map +0 -1
- package/dist/mobile-header/MobileUserMenuToggle.js +0 -19
- package/dist/mobile-header/MobileUserMenuToggle.js.map +0 -1
- package/dist/plugin-slots/CourseInfoSlot/README.md +0 -128
- package/dist/plugin-slots/CourseInfoSlot/images/add_custom_components_before_and_after_course_info.png +0 -0
- package/dist/plugin-slots/CourseInfoSlot/images/replace_course_info_with_custom_component.png +0 -0
- package/dist/plugin-slots/CourseInfoSlot/images/replace_course_title.png +0 -0
- package/dist/plugin-slots/CourseInfoSlot/index.js +0 -32
- package/dist/plugin-slots/CourseInfoSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopHeaderSlot/README.md +0 -44
- package/dist/plugin-slots/DesktopHeaderSlot/images/desktop_header_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopHeaderSlot/index.js +0 -16
- package/dist/plugin-slots/DesktopHeaderSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/README.md +0 -137
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/images/desktop_logged_out_items_modify_items.png +0 -0
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js +0 -20
- package/dist/plugin-slots/DesktopLoggedOutItemsSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopMainMenuSlot/README.md +0 -137
- package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/DesktopMainMenuSlot/images/desktop_main_menu_modify_items.png +0 -0
- package/dist/plugin-slots/DesktopMainMenuSlot/index.js +0 -20
- package/dist/plugin-slots/DesktopMainMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/README.md +0 -132
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/images/desktop_secondary_menu_modify_items.png +0 -0
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js +0 -20
- package/dist/plugin-slots/DesktopSecondaryMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopUserMenuSlot/README.md +0 -144
- package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/DesktopUserMenuSlot/images/desktop_user_menu_modify_items.png +0 -0
- package/dist/plugin-slots/DesktopUserMenuSlot/index.js +0 -20
- package/dist/plugin-slots/DesktopUserMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/DesktopUserMenuToggleSlot/README.md +0 -74
- package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_custom_component.png +0 -0
- package/dist/plugin-slots/DesktopUserMenuToggleSlot/images/desktop_user_menu_modified_toggle.png +0 -0
- package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js +0 -19
- package/dist/plugin-slots/DesktopUserMenuToggleSlot/index.js.map +0 -1
- package/dist/plugin-slots/LearningHelpSlot/README.md +0 -44
- package/dist/plugin-slots/LearningHelpSlot/images/learning_help_custom_component.png +0 -0
- package/dist/plugin-slots/LearningHelpSlot/index.js +0 -11
- package/dist/plugin-slots/LearningHelpSlot/index.js.map +0 -1
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/README.md +0 -135
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_component.png +0 -0
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/images/learning_logged_out_items_modified_items.png +0 -0
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js +0 -18
- package/dist/plugin-slots/LearningLoggedOutItemsSlot/index.js.map +0 -1
- package/dist/plugin-slots/LearningUserMenuSlot/README.md +0 -133
- package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_component.png +0 -0
- package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/LearningUserMenuSlot/images/learning_user_menu_modified_items.png +0 -0
- package/dist/plugin-slots/LearningUserMenuSlot/index.js +0 -18
- package/dist/plugin-slots/LearningUserMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/LearningUserMenuToggleSlot/README.md +0 -74
- package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_custom_component.png +0 -0
- package/dist/plugin-slots/LearningUserMenuToggleSlot/images/learning_user_menu_toggle_modified_items.png +0 -0
- package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js +0 -19
- package/dist/plugin-slots/LearningUserMenuToggleSlot/index.js.map +0 -1
- package/dist/plugin-slots/LogoSlot/README.md +0 -72
- package/dist/plugin-slots/LogoSlot/index.js +0 -27
- package/dist/plugin-slots/LogoSlot/index.js.map +0 -1
- package/dist/plugin-slots/MobileHeaderSlot/README.md +0 -44
- package/dist/plugin-slots/MobileHeaderSlot/images/mobile_header_custom_component.png +0 -0
- package/dist/plugin-slots/MobileHeaderSlot/index.js +0 -16
- package/dist/plugin-slots/MobileHeaderSlot/index.js.map +0 -1
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/README.md +0 -136
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_component.png +0 -0
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/images/mobile_logged_out_items_modify_items.png +0 -0
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js +0 -20
- package/dist/plugin-slots/MobileLoggedOutItemsSlot/index.js.map +0 -1
- package/dist/plugin-slots/MobileMainMenuSlot/README.md +0 -136
- package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_component.png +0 -0
- package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/MobileMainMenuSlot/images/mobile_main_menu_modify_items.png +0 -0
- package/dist/plugin-slots/MobileMainMenuSlot/index.js +0 -20
- package/dist/plugin-slots/MobileMainMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/MobileUserMenuSlot/README.md +0 -144
- package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_component.png +0 -0
- package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_custom_components_before_after.png +0 -0
- package/dist/plugin-slots/MobileUserMenuSlot/images/mobile_user_menu_modify_items.png +0 -0
- package/dist/plugin-slots/MobileUserMenuSlot/index.js +0 -20
- package/dist/plugin-slots/MobileUserMenuSlot/index.js.map +0 -1
- package/dist/plugin-slots/MobileUserMenuToggleSlot/README.md +0 -74
- package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_custom_component.png +0 -0
- package/dist/plugin-slots/MobileUserMenuToggleSlot/images/mobile_user_menu_toggle_modified_items.png +0 -0
- package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js +0 -19
- package/dist/plugin-slots/MobileUserMenuToggleSlot/index.js.map +0 -1
- package/dist/plugin-slots/README.md +0 -26
- package/dist/studio-header/BrandNav.test.tsx +0 -40
- package/dist/studio-header/BrandNav.tsx +0 -25
- package/dist/studio-header/CourseLockUp.test.tsx +0 -59
- package/dist/studio-header/CourseLockUp.tsx +0 -56
- package/dist/studio-header/HeaderBody.test.tsx +0 -102
- package/dist/studio-header/HeaderBody.tsx +0 -196
- package/dist/studio-header/MobileHeader.tsx +0 -74
- package/dist/studio-header/MobileMenu.test.tsx +0 -81
- package/dist/studio-header/MobileMenu.tsx +0 -50
- package/dist/studio-header/NavDropdownMenu.test.tsx +0 -67
- package/dist/studio-header/NavDropdownMenu.tsx +0 -42
- package/dist/studio-header/StudioHeader.test.tsx +0 -220
- package/dist/studio-header/StudioHeader.tsx +0 -84
- package/dist/studio-header/UserMenu.tsx +0 -69
- package/dist/studio-header/utils.ts +0 -37
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
5
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
9
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
10
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
11
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
13
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
14
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
15
|
+
import React from 'react';
|
|
16
|
+
import PropTypes from 'prop-types';
|
|
17
|
+
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
|
18
|
+
import { getConfig } from '@edx/frontend-platform';
|
|
19
|
+
|
|
20
|
+
// Local Components
|
|
21
|
+
import { Menu, MenuTrigger, MenuContent } from './Menu';
|
|
22
|
+
import Avatar from './Avatar';
|
|
23
|
+
import { LinkedLogo, Logo } from './Logo';
|
|
24
|
+
|
|
25
|
+
// i18n
|
|
26
|
+
import messages from './Header.messages';
|
|
27
|
+
|
|
28
|
+
// Assets
|
|
29
|
+
import { MenuIcon } from './Icons';
|
|
30
|
+
var MobileHeader = /*#__PURE__*/function (_React$Component) {
|
|
31
|
+
function MobileHeader(props) {
|
|
32
|
+
_classCallCheck(this, MobileHeader);
|
|
33
|
+
// eslint-disable-line no-useless-constructor
|
|
34
|
+
return _callSuper(this, MobileHeader, [props]);
|
|
35
|
+
}
|
|
36
|
+
_inherits(MobileHeader, _React$Component);
|
|
37
|
+
return _createClass(MobileHeader, [{
|
|
38
|
+
key: "renderMenu",
|
|
39
|
+
value: function renderMenu(menu) {
|
|
40
|
+
// Nodes are accepted as a prop
|
|
41
|
+
if (!Array.isArray(menu)) {
|
|
42
|
+
return menu;
|
|
43
|
+
}
|
|
44
|
+
return menu.map(function (menuItem) {
|
|
45
|
+
var type = menuItem.type,
|
|
46
|
+
href = menuItem.href,
|
|
47
|
+
content = menuItem.content,
|
|
48
|
+
submenuContent = menuItem.submenuContent,
|
|
49
|
+
disabled = menuItem.disabled,
|
|
50
|
+
isActive = menuItem.isActive;
|
|
51
|
+
if (type === 'item') {
|
|
52
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
53
|
+
key: "".concat(type, "-").concat(content),
|
|
54
|
+
className: "nav-link".concat(disabled ? ' disabled' : '').concat(isActive ? ' active' : ''),
|
|
55
|
+
href: href
|
|
56
|
+
}, content);
|
|
57
|
+
}
|
|
58
|
+
return /*#__PURE__*/React.createElement(Menu, {
|
|
59
|
+
key: "".concat(type, "-").concat(content),
|
|
60
|
+
tag: "div",
|
|
61
|
+
className: "nav-item"
|
|
62
|
+
}, /*#__PURE__*/React.createElement(MenuTrigger, {
|
|
63
|
+
tag: "a",
|
|
64
|
+
role: "button",
|
|
65
|
+
tabIndex: "0",
|
|
66
|
+
className: "nav-link"
|
|
67
|
+
}, content), /*#__PURE__*/React.createElement(MenuContent, {
|
|
68
|
+
className: "position-static pin-left pin-right py-2"
|
|
69
|
+
}, submenuContent));
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}, {
|
|
73
|
+
key: "renderMainMenu",
|
|
74
|
+
value: function renderMainMenu() {
|
|
75
|
+
var mainMenu = this.props.mainMenu;
|
|
76
|
+
return this.renderMenu(mainMenu);
|
|
77
|
+
}
|
|
78
|
+
}, {
|
|
79
|
+
key: "renderSecondaryMenu",
|
|
80
|
+
value: function renderSecondaryMenu() {
|
|
81
|
+
var secondaryMenu = this.props.secondaryMenu;
|
|
82
|
+
return this.renderMenu(secondaryMenu);
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "renderUserMenuItems",
|
|
86
|
+
value: function renderUserMenuItems() {
|
|
87
|
+
var userMenu = this.props.userMenu;
|
|
88
|
+
return userMenu.map(function (group) {
|
|
89
|
+
return group.items.map(function (_ref) {
|
|
90
|
+
var type = _ref.type,
|
|
91
|
+
content = _ref.content,
|
|
92
|
+
href = _ref.href,
|
|
93
|
+
disabled = _ref.disabled,
|
|
94
|
+
isActive = _ref.isActive;
|
|
95
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
96
|
+
className: "nav-item",
|
|
97
|
+
key: "".concat(type, "-").concat(content)
|
|
98
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
99
|
+
className: "nav-link".concat(isActive ? ' active' : '').concat(disabled ? ' disabled' : ''),
|
|
100
|
+
href: href
|
|
101
|
+
}, content));
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}, {
|
|
106
|
+
key: "renderLoggedOutItems",
|
|
107
|
+
value: function renderLoggedOutItems() {
|
|
108
|
+
var loggedOutItems = this.props.loggedOutItems;
|
|
109
|
+
return loggedOutItems.map(function (_ref2, i, arr) {
|
|
110
|
+
var type = _ref2.type,
|
|
111
|
+
href = _ref2.href,
|
|
112
|
+
content = _ref2.content;
|
|
113
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
114
|
+
className: "nav-item px-3 my-2",
|
|
115
|
+
key: "".concat(type, "-").concat(content)
|
|
116
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
117
|
+
className: i < arr.length - 1 ? 'btn btn-block btn-outline-primary' : 'btn btn-block btn-primary',
|
|
118
|
+
href: href
|
|
119
|
+
}, content));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
}, {
|
|
123
|
+
key: "render",
|
|
124
|
+
value: function render() {
|
|
125
|
+
var _this$props = this.props,
|
|
126
|
+
logo = _this$props.logo,
|
|
127
|
+
logoAltText = _this$props.logoAltText,
|
|
128
|
+
logoDestination = _this$props.logoDestination,
|
|
129
|
+
loggedIn = _this$props.loggedIn,
|
|
130
|
+
avatar = _this$props.avatar,
|
|
131
|
+
username = _this$props.username,
|
|
132
|
+
stickyOnMobile = _this$props.stickyOnMobile,
|
|
133
|
+
intl = _this$props.intl,
|
|
134
|
+
mainMenu = _this$props.mainMenu,
|
|
135
|
+
userMenu = _this$props.userMenu,
|
|
136
|
+
loggedOutItems = _this$props.loggedOutItems;
|
|
137
|
+
var logoProps = {
|
|
138
|
+
src: logo,
|
|
139
|
+
alt: logoAltText,
|
|
140
|
+
href: logoDestination
|
|
141
|
+
};
|
|
142
|
+
var stickyClassName = stickyOnMobile ? 'sticky-top' : '';
|
|
143
|
+
var logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'justify-content-left pl-3' : 'justify-content-center';
|
|
144
|
+
return /*#__PURE__*/React.createElement("header", {
|
|
145
|
+
"aria-label": intl.formatMessage(messages['header.label.main.header']),
|
|
146
|
+
className: "site-header-mobile d-flex justify-content-between align-items-center shadow ".concat(stickyClassName)
|
|
147
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
148
|
+
className: "nav-skip sr-only sr-only-focusable",
|
|
149
|
+
href: "#main"
|
|
150
|
+
}, intl.formatMessage(messages['header.label.skip.nav'])), mainMenu.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
151
|
+
className: "w-100 d-flex justify-content-start"
|
|
152
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
153
|
+
className: "position-static"
|
|
154
|
+
}, /*#__PURE__*/React.createElement(MenuTrigger, {
|
|
155
|
+
tag: "button",
|
|
156
|
+
className: "icon-button",
|
|
157
|
+
"aria-label": intl.formatMessage(messages['header.label.main.menu']),
|
|
158
|
+
title: intl.formatMessage(messages['header.label.main.menu'])
|
|
159
|
+
}, /*#__PURE__*/React.createElement(MenuIcon, {
|
|
160
|
+
role: "img",
|
|
161
|
+
"aria-hidden": true,
|
|
162
|
+
focusable: "false",
|
|
163
|
+
style: {
|
|
164
|
+
width: '1.5rem',
|
|
165
|
+
height: '1.5rem'
|
|
166
|
+
}
|
|
167
|
+
})), /*#__PURE__*/React.createElement(MenuContent, {
|
|
168
|
+
tag: "nav",
|
|
169
|
+
"aria-label": intl.formatMessage(messages['header.label.main.nav']),
|
|
170
|
+
className: "nav flex-column pin-left pin-right border-top shadow py-2"
|
|
171
|
+
}, this.renderMainMenu(), this.renderSecondaryMenu()))) : null, /*#__PURE__*/React.createElement("div", {
|
|
172
|
+
className: "w-100 d-flex ".concat(logoClasses)
|
|
173
|
+
}, logoDestination === null ? /*#__PURE__*/React.createElement(Logo, {
|
|
174
|
+
className: "logo",
|
|
175
|
+
src: logo,
|
|
176
|
+
alt: logoAltText
|
|
177
|
+
}) : /*#__PURE__*/React.createElement(LinkedLogo, _extends({
|
|
178
|
+
className: "logo"
|
|
179
|
+
}, logoProps, {
|
|
180
|
+
itemType: "http://schema.org/Organization"
|
|
181
|
+
}))), userMenu.length > 0 || loggedOutItems.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
182
|
+
className: "w-100 d-flex justify-content-end align-items-center"
|
|
183
|
+
}, /*#__PURE__*/React.createElement(Menu, {
|
|
184
|
+
tag: "nav",
|
|
185
|
+
"aria-label": intl.formatMessage(messages['header.label.secondary.nav']),
|
|
186
|
+
className: "position-static"
|
|
187
|
+
}, /*#__PURE__*/React.createElement(MenuTrigger, {
|
|
188
|
+
tag: "button",
|
|
189
|
+
className: "icon-button",
|
|
190
|
+
"aria-label": intl.formatMessage(messages['header.label.account.menu']),
|
|
191
|
+
title: intl.formatMessage(messages['header.label.account.menu'])
|
|
192
|
+
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
193
|
+
size: "1.5rem",
|
|
194
|
+
src: avatar,
|
|
195
|
+
alt: username
|
|
196
|
+
})), /*#__PURE__*/React.createElement(MenuContent, {
|
|
197
|
+
tag: "ul",
|
|
198
|
+
className: "nav flex-column pin-left pin-right border-top shadow py-2"
|
|
199
|
+
}, loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()))) : null);
|
|
200
|
+
}
|
|
201
|
+
}]);
|
|
202
|
+
}(React.Component);
|
|
203
|
+
MobileHeader.propTypes = {
|
|
204
|
+
mainMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
|
|
205
|
+
secondaryMenu: PropTypes.oneOfType([PropTypes.node, PropTypes.array]),
|
|
206
|
+
userMenu: PropTypes.arrayOf(PropTypes.shape({
|
|
207
|
+
heading: PropTypes.string,
|
|
208
|
+
items: PropTypes.arrayOf(PropTypes.shape({
|
|
209
|
+
type: PropTypes.oneOf(['item', 'menu']),
|
|
210
|
+
href: PropTypes.string,
|
|
211
|
+
content: PropTypes.string,
|
|
212
|
+
isActive: PropTypes.bool
|
|
213
|
+
}))
|
|
214
|
+
})),
|
|
215
|
+
loggedOutItems: PropTypes.arrayOf(PropTypes.shape({
|
|
216
|
+
type: PropTypes.oneOf(['item', 'menu']),
|
|
217
|
+
href: PropTypes.string,
|
|
218
|
+
content: PropTypes.string
|
|
219
|
+
})),
|
|
220
|
+
logo: PropTypes.string,
|
|
221
|
+
logoAltText: PropTypes.string,
|
|
222
|
+
logoDestination: PropTypes.string,
|
|
223
|
+
avatar: PropTypes.string,
|
|
224
|
+
username: PropTypes.string,
|
|
225
|
+
loggedIn: PropTypes.bool,
|
|
226
|
+
stickyOnMobile: PropTypes.bool,
|
|
227
|
+
// i18n
|
|
228
|
+
intl: intlShape.isRequired
|
|
229
|
+
};
|
|
230
|
+
MobileHeader.defaultProps = {
|
|
231
|
+
mainMenu: [],
|
|
232
|
+
secondaryMenu: [],
|
|
233
|
+
userMenu: [],
|
|
234
|
+
loggedOutItems: [],
|
|
235
|
+
logo: null,
|
|
236
|
+
logoAltText: null,
|
|
237
|
+
logoDestination: null,
|
|
238
|
+
avatar: null,
|
|
239
|
+
username: null,
|
|
240
|
+
loggedIn: false,
|
|
241
|
+
stickyOnMobile: true
|
|
242
|
+
};
|
|
243
|
+
export default injectIntl(MobileHeader);
|
|
244
|
+
//# sourceMappingURL=MobileHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobileHeader.js","names":["React","PropTypes","injectIntl","intlShape","getConfig","Menu","MenuTrigger","MenuContent","Avatar","LinkedLogo","Logo","messages","MenuIcon","MobileHeader","_React$Component","props","_classCallCheck","_callSuper","_inherits","_createClass","key","value","renderMenu","menu","Array","isArray","map","menuItem","type","href","content","submenuContent","disabled","isActive","createElement","concat","className","tag","role","tabIndex","renderMainMenu","mainMenu","renderSecondaryMenu","secondaryMenu","renderUserMenuItems","userMenu","group","items","_ref","renderLoggedOutItems","loggedOutItems","_ref2","i","arr","length","render","_this$props","logo","logoAltText","logoDestination","loggedIn","avatar","username","stickyOnMobile","intl","logoProps","src","alt","stickyClassName","logoClasses","AUTHN_MINIMAL_HEADER","formatMessage","title","focusable","style","width","height","_extends","itemType","size","Component","propTypes","oneOfType","node","array","arrayOf","shape","heading","string","oneOf","bool","isRequired","defaultProps"],"sources":["../src/MobileHeader.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { getConfig } from '@edx/frontend-platform';\n\n// Local Components\nimport { Menu, MenuTrigger, MenuContent } from './Menu';\nimport Avatar from './Avatar';\nimport { LinkedLogo, Logo } from './Logo';\n\n// i18n\nimport messages from './Header.messages';\n\n// Assets\nimport { MenuIcon } from './Icons';\n\nclass MobileHeader extends React.Component {\n constructor(props) { // eslint-disable-line no-useless-constructor\n super(props);\n }\n\n renderMenu(menu) {\n // Nodes are accepted as a prop\n if (!Array.isArray(menu)) {\n return menu;\n }\n\n return menu.map((menuItem) => {\n const {\n type,\n href,\n content,\n submenuContent,\n disabled,\n isActive,\n } = menuItem;\n\n if (type === 'item') {\n return (\n <a\n key={`${type}-${content}`}\n className={`nav-link${disabled ? ' disabled' : ''}${isActive ? ' active' : ''}`}\n href={href}\n >\n {content}\n </a>\n );\n }\n\n return (\n <Menu key={`${type}-${content}`} tag=\"div\" className=\"nav-item\">\n <MenuTrigger tag=\"a\" role=\"button\" tabIndex=\"0\" className=\"nav-link\">\n {content}\n </MenuTrigger>\n <MenuContent className=\"position-static pin-left pin-right py-2\">\n {submenuContent}\n </MenuContent>\n </Menu>\n );\n });\n }\n\n renderMainMenu() {\n const { mainMenu } = this.props;\n return this.renderMenu(mainMenu);\n }\n\n renderSecondaryMenu() {\n const { secondaryMenu } = this.props;\n return this.renderMenu(secondaryMenu);\n }\n\n renderUserMenuItems() {\n const { userMenu } = this.props;\n\n return userMenu.map((group) => (\n group.items.map(({\n type, content, href, disabled, isActive,\n }) => (\n <li className=\"nav-item\" key={`${type}-${content}`}>\n <a\n className={`nav-link${isActive ? ' active' : ''}${disabled ? ' disabled' : ''}`}\n href={href}\n >\n {content}\n </a>\n </li>\n ))\n ));\n }\n\n renderLoggedOutItems() {\n const { loggedOutItems } = this.props;\n\n return loggedOutItems.map(({ type, href, content }, i, arr) => (\n <li className=\"nav-item px-3 my-2\" key={`${type}-${content}`}>\n <a\n className={i < arr.length - 1 ? 'btn btn-block btn-outline-primary' : 'btn btn-block btn-primary'}\n href={href}\n >\n {content}\n </a>\n </li>\n ));\n }\n\n render() {\n const {\n logo,\n logoAltText,\n logoDestination,\n loggedIn,\n avatar,\n username,\n stickyOnMobile,\n intl,\n mainMenu,\n userMenu,\n loggedOutItems,\n } = this.props;\n const logoProps = { src: logo, alt: logoAltText, href: logoDestination };\n const stickyClassName = stickyOnMobile ? 'sticky-top' : '';\n const logoClasses = getConfig().AUTHN_MINIMAL_HEADER ? 'justify-content-left pl-3' : 'justify-content-center';\n\n return (\n <header\n aria-label={intl.formatMessage(messages['header.label.main.header'])}\n className={`site-header-mobile d-flex justify-content-between align-items-center shadow ${stickyClassName}`}\n >\n <a className=\"nav-skip sr-only sr-only-focusable\" href=\"#main\">{intl.formatMessage(messages['header.label.skip.nav'])}</a>\n {mainMenu.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-start\">\n\n <Menu className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.main.menu'])}\n title={intl.formatMessage(messages['header.label.main.menu'])}\n >\n <MenuIcon role=\"img\" aria-hidden focusable=\"false\" style={{ width: '1.5rem', height: '1.5rem' }} />\n </MenuTrigger>\n <MenuContent\n tag=\"nav\"\n aria-label={intl.formatMessage(messages['header.label.main.nav'])}\n className=\"nav flex-column pin-left pin-right border-top shadow py-2\"\n >\n {this.renderMainMenu()}\n {this.renderSecondaryMenu()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n <div className={`w-100 d-flex ${logoClasses}`}>\n { logoDestination === null ? <Logo className=\"logo\" src={logo} alt={logoAltText} /> : <LinkedLogo className=\"logo\" {...logoProps} itemType=\"http://schema.org/Organization\" />}\n </div>\n {userMenu.length > 0 || loggedOutItems.length > 0 ? (\n <div className=\"w-100 d-flex justify-content-end align-items-center\">\n <Menu tag=\"nav\" aria-label={intl.formatMessage(messages['header.label.secondary.nav'])} className=\"position-static\">\n <MenuTrigger\n tag=\"button\"\n className=\"icon-button\"\n aria-label={intl.formatMessage(messages['header.label.account.menu'])}\n title={intl.formatMessage(messages['header.label.account.menu'])}\n >\n <Avatar size=\"1.5rem\" src={avatar} alt={username} />\n </MenuTrigger>\n <MenuContent tag=\"ul\" className=\"nav flex-column pin-left pin-right border-top shadow py-2\">\n {loggedIn ? this.renderUserMenuItems() : this.renderLoggedOutItems()}\n </MenuContent>\n </Menu>\n </div>\n ) : null}\n </header>\n );\n }\n}\n\nMobileHeader.propTypes = {\n mainMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n secondaryMenu: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.array,\n ]),\n userMenu: PropTypes.arrayOf(PropTypes.shape({\n heading: PropTypes.string,\n items: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n isActive: PropTypes.bool,\n })),\n })),\n loggedOutItems: PropTypes.arrayOf(PropTypes.shape({\n type: PropTypes.oneOf(['item', 'menu']),\n href: PropTypes.string,\n content: PropTypes.string,\n })),\n logo: PropTypes.string,\n logoAltText: PropTypes.string,\n logoDestination: PropTypes.string,\n avatar: PropTypes.string,\n username: PropTypes.string,\n loggedIn: PropTypes.bool,\n stickyOnMobile: PropTypes.bool,\n\n // i18n\n intl: intlShape.isRequired,\n};\n\nMobileHeader.defaultProps = {\n mainMenu: [],\n secondaryMenu: [],\n userMenu: [],\n loggedOutItems: [],\n logo: null,\n logoAltText: null,\n logoDestination: null,\n avatar: null,\n username: null,\n loggedIn: false,\n stickyOnMobile: true,\n\n};\n\nexport default injectIntl(MobileHeader);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,7 +33,6 @@ exports[`<Header /> renders correctly for anonymous desktop 1`] = `
|
|
|
33
33
|
<a
|
|
34
34
|
className="nav-link"
|
|
35
35
|
href="http://localhost:18000/dashboard"
|
|
36
|
-
onClick={null}
|
|
37
36
|
>
|
|
38
37
|
Courses
|
|
39
38
|
</a>
|
|
@@ -230,7 +229,6 @@ exports[`<Header /> renders correctly for authenticated desktop 1`] = `
|
|
|
230
229
|
<a
|
|
231
230
|
className="nav-link"
|
|
232
231
|
href="http://localhost:18000/dashboard"
|
|
233
|
-
onClick={null}
|
|
234
232
|
>
|
|
235
233
|
Courses
|
|
236
234
|
</a>
|
package/dist/index.scss
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
$spacer: 1rem;
|
|
2
2
|
$blue: #007db8;
|
|
3
3
|
$white: #fff;
|
|
4
|
-
$component-active-bg: #0A3055FF !default;
|
|
5
|
-
$component-active-color: $white !default;
|
|
6
|
-
$rounded-pill: 50rem !default;
|
|
7
4
|
|
|
8
5
|
@import './Menu/menu.scss';
|
|
9
6
|
@import './studio-header/StudioHeader.scss';
|
|
@@ -24,9 +21,8 @@ $rounded-pill: 50rem !default;
|
|
|
24
21
|
padding: .75rem;
|
|
25
22
|
justify-content: center;
|
|
26
23
|
align-items:center;
|
|
27
|
-
|
|
28
24
|
&:hover, &:focus {
|
|
29
|
-
background: rgba(0,
|
|
25
|
+
background: rgba(0,0,0,.1);
|
|
30
26
|
}
|
|
31
27
|
}
|
|
32
28
|
|
|
@@ -40,7 +36,7 @@ $rounded-pill: 50rem !default;
|
|
|
40
36
|
white-space: nowrap;
|
|
41
37
|
overflow: hidden;
|
|
42
38
|
text-overflow: ellipsis;
|
|
43
|
-
padding-bottom:
|
|
39
|
+
padding-bottom: 0.1rem;
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
42
|
|
|
@@ -67,7 +63,6 @@ $rounded-pill: 50rem !default;
|
|
|
67
63
|
text-decoration: none;
|
|
68
64
|
cursor: pointer;
|
|
69
65
|
}
|
|
70
|
-
|
|
71
66
|
img {
|
|
72
67
|
height: 1.5rem;
|
|
73
68
|
}
|
|
@@ -75,22 +70,19 @@ $rounded-pill: 50rem !default;
|
|
|
75
70
|
|
|
76
71
|
|
|
77
72
|
.site-header-desktop {
|
|
78
|
-
box-shadow: 0 1px 0 0 rgba(0,
|
|
79
|
-
background:
|
|
80
|
-
|
|
73
|
+
box-shadow: 0 1px 0 0 rgba(0,0,0,.1);
|
|
74
|
+
background: $white;
|
|
81
75
|
.nav-link {
|
|
82
76
|
text-decoration: none;
|
|
83
77
|
}
|
|
84
|
-
|
|
85
78
|
.logo {
|
|
86
79
|
display: block;
|
|
87
80
|
box-sizing: content-box;
|
|
88
81
|
position: relative;
|
|
89
82
|
top: -.05em;
|
|
90
83
|
height: 1.75rem;
|
|
91
|
-
padding:
|
|
92
|
-
margin-right:
|
|
93
|
-
|
|
84
|
+
padding: 1rem 0;
|
|
85
|
+
margin-right: 1rem;
|
|
94
86
|
img {
|
|
95
87
|
display: block;
|
|
96
88
|
height: 100%;
|
|
@@ -101,42 +93,38 @@ $rounded-pill: 50rem !default;
|
|
|
101
93
|
.nav-link:focus,
|
|
102
94
|
.nav-link.active,
|
|
103
95
|
.expanded .nav-link {
|
|
104
|
-
background:
|
|
105
|
-
color:
|
|
96
|
+
background: $component-active-bg;
|
|
97
|
+
color: $component-active-color;
|
|
106
98
|
}
|
|
107
99
|
}
|
|
108
100
|
.main-nav {
|
|
109
101
|
.nav-link {
|
|
110
|
-
padding: 1.125rem
|
|
102
|
+
padding: 1.125rem 1rem;
|
|
111
103
|
text-decoration: none;
|
|
112
104
|
font-weight: 500;
|
|
113
105
|
letter-spacing: .01em;
|
|
114
106
|
}
|
|
115
|
-
|
|
116
107
|
.nav-link:hover,
|
|
117
108
|
.nav-link:focus,
|
|
118
109
|
.nav-link.active,
|
|
119
110
|
.expanded .nav-link {
|
|
120
|
-
background:
|
|
121
|
-
color:
|
|
111
|
+
background: $component-active-bg;
|
|
112
|
+
color: $component-active-color;
|
|
122
113
|
}
|
|
123
|
-
|
|
124
114
|
.menu {
|
|
125
115
|
position: static;
|
|
126
|
-
|
|
127
116
|
.menu-content {
|
|
128
|
-
border-top: solid 2px
|
|
117
|
+
border-top: solid 2px $component-active-bg;
|
|
129
118
|
left: 0;
|
|
130
119
|
right: 0;
|
|
131
|
-
box-shadow:
|
|
120
|
+
box-shadow: 0 1px 2px rgba(0,0,0,.25);
|
|
132
121
|
border-bottom-left-radius: 2px;
|
|
133
122
|
border-bottom-right-radius: 2px;
|
|
134
|
-
padding:
|
|
123
|
+
padding: 1rem;
|
|
135
124
|
}
|
|
136
125
|
}
|
|
137
126
|
}
|
|
138
|
-
|
|
139
127
|
.search-input {
|
|
140
|
-
border-radius:
|
|
128
|
+
border-radius: $rounded-pill;
|
|
141
129
|
}
|
|
142
130
|
}
|
|
@@ -2,21 +2,18 @@ import React from 'react';
|
|
|
2
2
|
import { getConfig } from '@edx/frontend-platform';
|
|
3
3
|
import { getLoginRedirectUrl } from '@edx/frontend-platform/auth';
|
|
4
4
|
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
|
5
|
-
import
|
|
5
|
+
import { Button } from '@openedx/paragon';
|
|
6
6
|
import genericMessages from '../generic/messages';
|
|
7
7
|
var AnonymousUserMenu = function AnonymousUserMenu(_ref) {
|
|
8
8
|
var intl = _ref.intl;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
|
|
10
|
+
className: "mr-3",
|
|
11
|
+
variant: "outline-primary",
|
|
11
12
|
href: "".concat(getConfig().LMS_BASE_URL, "/register?next=").concat(encodeURIComponent(global.location.href))
|
|
12
|
-
}, {
|
|
13
|
-
|
|
14
|
-
href: getLoginRedirectUrl(global.location.href)
|
|
15
|
-
|
|
16
|
-
}];
|
|
17
|
-
return /*#__PURE__*/React.createElement(LearningLoggedOutItemsSlot, {
|
|
18
|
-
buttonsInfo: buttonsInfo
|
|
19
|
-
});
|
|
13
|
+
}, intl.formatMessage(genericMessages.registerSentenceCase)), /*#__PURE__*/React.createElement(Button, {
|
|
14
|
+
variant: "primary",
|
|
15
|
+
href: "".concat(getLoginRedirectUrl(global.location.href))
|
|
16
|
+
}, intl.formatMessage(genericMessages.signInSentenceCase)));
|
|
20
17
|
};
|
|
21
18
|
AnonymousUserMenu.propTypes = {
|
|
22
19
|
intl: intlShape.isRequired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnonymousUserMenu.js","names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","
|
|
1
|
+
{"version":3,"file":"AnonymousUserMenu.js","names":["React","getConfig","getLoginRedirectUrl","injectIntl","intlShape","Button","genericMessages","AnonymousUserMenu","_ref","intl","createElement","className","variant","href","concat","LMS_BASE_URL","encodeURIComponent","global","location","formatMessage","registerSentenceCase","signInSentenceCase","propTypes","isRequired"],"sources":["../../src/learning-header/AnonymousUserMenu.jsx"],"sourcesContent":["import React from 'react';\n\nimport { getConfig } from '@edx/frontend-platform';\nimport { getLoginRedirectUrl } from '@edx/frontend-platform/auth';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Button } from '@openedx/paragon';\n\nimport genericMessages from '../generic/messages';\n\nconst AnonymousUserMenu = ({ intl }) => (\n <div>\n <Button\n className=\"mr-3\"\n variant=\"outline-primary\"\n href={`${getConfig().LMS_BASE_URL}/register?next=${encodeURIComponent(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.registerSentenceCase)}\n </Button>\n <Button\n variant=\"primary\"\n href={`${getLoginRedirectUrl(global.location.href)}`}\n >\n {intl.formatMessage(genericMessages.signInSentenceCase)}\n </Button>\n </div>\n);\n\nAnonymousUserMenu.propTypes = {\n intl: intlShape.isRequired,\n};\n\nexport default injectIntl(AnonymousUserMenu);\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,SAAS,QAAQ,wBAAwB;AAClD,SAASC,mBAAmB,QAAQ,6BAA6B;AACjE,SAASC,UAAU,EAAEC,SAAS,QAAQ,6BAA6B;AACnE,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAOC,eAAe,MAAM,qBAAqB;AAEjD,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA;EAAA,IAAMC,IAAI,GAAAD,IAAA,CAAJC,IAAI;EAAA,oBAC/BT,KAAA,CAAAU,aAAA,2BACEV,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLM,SAAS,EAAC,MAAM;IAChBC,OAAO,EAAC,iBAAiB;IACzBC,IAAI,KAAAC,MAAA,CAAKb,SAAS,CAAC,CAAC,CAACc,YAAY,qBAAAD,MAAA,CAAkBE,kBAAkB,CAACC,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAE7FJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACc,oBAAoB,CAClD,CAAC,eACTpB,KAAA,CAAAU,aAAA,CAACL,MAAM;IACLO,OAAO,EAAC,SAAS;IACjBC,IAAI,KAAAC,MAAA,CAAKZ,mBAAmB,CAACe,MAAM,CAACC,QAAQ,CAACL,IAAI,CAAC;EAAG,GAEpDJ,IAAI,CAACU,aAAa,CAACb,eAAe,CAACe,kBAAkB,CAChD,CACL,CAAC;AAAA,CACP;AAEDd,iBAAiB,CAACe,SAAS,GAAG;EAC5Bb,IAAI,EAAEL,SAAS,CAACmB;AAClB,CAAC;AAED,eAAepB,UAAU,CAACI,iBAAiB,CAAC","ignoreList":[]}
|
|
@@ -1,50 +1,42 @@
|
|
|
1
|
-
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
2
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
4
|
-
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
5
|
-
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
6
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
7
1
|
import React from 'react';
|
|
8
2
|
import PropTypes from 'prop-types';
|
|
3
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
9
4
|
import { faUserCircle } from '@fortawesome/free-solid-svg-icons';
|
|
10
5
|
import { getConfig } from '@edx/frontend-platform';
|
|
11
6
|
import { injectIntl, intlShape } from '@edx/frontend-platform/i18n';
|
|
12
7
|
import { Dropdown } from '@openedx/paragon';
|
|
13
|
-
import LearningUserMenuToggleSlot from '../plugin-slots/LearningUserMenuToggleSlot';
|
|
14
|
-
import LearningUserMenuSlot from '../plugin-slots/LearningUserMenuSlot';
|
|
15
8
|
import messages from './messages';
|
|
16
9
|
var AuthenticatedUserDropdown = function AuthenticatedUserDropdown(_ref) {
|
|
17
10
|
var intl = _ref.intl,
|
|
18
11
|
username = _ref.username;
|
|
19
|
-
var
|
|
20
|
-
message: intl.formatMessage(messages.dashboard),
|
|
12
|
+
var dashboardMenuItem = /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
21
13
|
href: "".concat(getConfig().LMS_BASE_URL, "/dashboard")
|
|
22
|
-
},
|
|
23
|
-
|
|
14
|
+
}, intl.formatMessage(messages.dashboard));
|
|
15
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("a", {
|
|
16
|
+
className: "text-gray-700",
|
|
17
|
+
href: "".concat(getConfig().SUPPORT_URL)
|
|
18
|
+
}, intl.formatMessage(messages.help)), /*#__PURE__*/React.createElement(Dropdown, {
|
|
19
|
+
className: "user-dropdown ml-3"
|
|
20
|
+
}, /*#__PURE__*/React.createElement(Dropdown.Toggle, {
|
|
21
|
+
variant: "outline-primary"
|
|
22
|
+
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
23
|
+
icon: faUserCircle,
|
|
24
|
+
className: "d-md-none",
|
|
25
|
+
size: "lg"
|
|
26
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
27
|
+
"data-hj-suppress": true,
|
|
28
|
+
className: "d-none d-md-inline"
|
|
29
|
+
}, username)), /*#__PURE__*/React.createElement(Dropdown.Menu, {
|
|
30
|
+
className: "dropdown-menu-right"
|
|
31
|
+
}, dashboardMenuItem, /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
24
32
|
href: "".concat(getConfig().ACCOUNT_PROFILE_URL, "/u/").concat(username)
|
|
25
|
-
}, {
|
|
26
|
-
message: intl.formatMessage(messages.account),
|
|
33
|
+
}, intl.formatMessage(messages.profile)), /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
27
34
|
href: getConfig().ACCOUNT_SETTINGS_URL
|
|
28
|
-
}
|
|
29
|
-
message: intl.formatMessage(messages.orderHistory),
|
|
35
|
+
}, intl.formatMessage(messages.account)), getConfig().ORDER_HISTORY_URL && /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
30
36
|
href: getConfig().ORDER_HISTORY_URL
|
|
31
|
-
}
|
|
32
|
-
message: intl.formatMessage(messages.signOut),
|
|
37
|
+
}, intl.formatMessage(messages.orderHistory)), /*#__PURE__*/React.createElement(Dropdown.Item, {
|
|
33
38
|
href: getConfig().LOGOUT_URL
|
|
34
|
-
}
|
|
35
|
-
return /*#__PURE__*/React.createElement(Dropdown, {
|
|
36
|
-
className: "user-dropdown ml-3"
|
|
37
|
-
}, /*#__PURE__*/React.createElement(Dropdown.Toggle, {
|
|
38
|
-
variant: "outline-primary",
|
|
39
|
-
"aria-label": intl.formatMessage(messages.userOptionsDropdownLabel)
|
|
40
|
-
}, /*#__PURE__*/React.createElement(LearningUserMenuToggleSlot, {
|
|
41
|
-
label: username,
|
|
42
|
-
icon: faUserCircle
|
|
43
|
-
})), /*#__PURE__*/React.createElement(Dropdown.Menu, {
|
|
44
|
-
className: "dropdown-menu-right"
|
|
45
|
-
}, /*#__PURE__*/React.createElement(LearningUserMenuSlot, {
|
|
46
|
-
items: dropdownItems
|
|
47
|
-
})));
|
|
39
|
+
}, intl.formatMessage(messages.signOut)))));
|
|
48
40
|
};
|
|
49
41
|
AuthenticatedUserDropdown.propTypes = {
|
|
50
42
|
intl: intlShape.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthenticatedUserDropdown.js","names":["React","PropTypes","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","
|
|
1
|
+
{"version":3,"file":"AuthenticatedUserDropdown.js","names":["React","PropTypes","FontAwesomeIcon","faUserCircle","getConfig","injectIntl","intlShape","Dropdown","messages","AuthenticatedUserDropdown","_ref","intl","username","dashboardMenuItem","createElement","Item","href","concat","LMS_BASE_URL","formatMessage","dashboard","Fragment","className","SUPPORT_URL","help","Toggle","variant","icon","size","Menu","ACCOUNT_PROFILE_URL","profile","ACCOUNT_SETTINGS_URL","account","ORDER_HISTORY_URL","orderHistory","LOGOUT_URL","signOut","propTypes","isRequired","string"],"sources":["../../src/learning-header/AuthenticatedUserDropdown.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faUserCircle } from '@fortawesome/free-solid-svg-icons';\nimport { getConfig } from '@edx/frontend-platform';\nimport { injectIntl, intlShape } from '@edx/frontend-platform/i18n';\nimport { Dropdown } from '@openedx/paragon';\n\nimport messages from './messages';\n\nconst AuthenticatedUserDropdown = ({ intl, username }) => {\n const dashboardMenuItem = (\n <Dropdown.Item href={`${getConfig().LMS_BASE_URL}/dashboard`}>\n {intl.formatMessage(messages.dashboard)}\n </Dropdown.Item>\n );\n\n return (\n <>\n <a className=\"text-gray-700\" href={`${getConfig().SUPPORT_URL}`}>{intl.formatMessage(messages.help)}</a>\n <Dropdown className=\"user-dropdown ml-3\">\n <Dropdown.Toggle variant=\"outline-primary\">\n <FontAwesomeIcon icon={faUserCircle} className=\"d-md-none\" size=\"lg\" />\n <span data-hj-suppress className=\"d-none d-md-inline\">\n {username}\n </span>\n </Dropdown.Toggle>\n <Dropdown.Menu className=\"dropdown-menu-right\">\n {dashboardMenuItem}\n <Dropdown.Item href={`${getConfig().ACCOUNT_PROFILE_URL}/u/${username}`}>\n {intl.formatMessage(messages.profile)}\n </Dropdown.Item>\n <Dropdown.Item href={getConfig().ACCOUNT_SETTINGS_URL}>\n {intl.formatMessage(messages.account)}\n </Dropdown.Item>\n { getConfig().ORDER_HISTORY_URL && (\n <Dropdown.Item href={getConfig().ORDER_HISTORY_URL}>\n {intl.formatMessage(messages.orderHistory)}\n </Dropdown.Item>\n )}\n <Dropdown.Item href={getConfig().LOGOUT_URL}>\n {intl.formatMessage(messages.signOut)}\n </Dropdown.Item>\n </Dropdown.Menu>\n </Dropdown>\n </>\n );\n};\n\nAuthenticatedUserDropdown.propTypes = {\n intl: intlShape.isRequired,\n username: PropTypes.string.isRequired,\n};\n\nexport default injectIntl(AuthenticatedUserDropdown);\n"],"mappings":"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","ignoreList":[]}
|