diff --git a/header/Header.jsx b/header/Header.jsx
deleted file mode 100644
index 87d6db1..0000000
--- a/header/Header.jsx
+++ /dev/null
@@ -1,120 +0,0 @@
-import { sendTrackEvent } from '@edx/frontend-analytics';
-import { App, AuthenticationContext } from '@edx/frontend-base';
-import SiteHeader from '@edx/frontend-component-site-header';
-import { injectIntl, intlShape } from '@edx/frontend-i18n';
-import PropTypes from 'prop-types';
-import React, { useContext } from 'react';
-import { connect } from 'react-redux';
-
-import messages from './Header.messages';
-import HeaderLogo from './logo.svg';
-
-App.requireConfig([
- 'LMS_BASE_URL',
- 'LOGOUT_URL',
- 'MARKETING_SITE_BASE_URL',
- 'ORDER_HISTORY_URL',
- 'SITE_NAME',
-], 'ProfilePage');
-
-function ProfileHeader({ avatar, intl }) {
- const authentication = useContext(AuthenticationContext);
-
- const mainMenu = [
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/dashboard`,
- content: intl.formatMessage(messages['siteheader.links.courses']),
- },
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/dashboard/programs`,
- content: intl.formatMessage(messages['siteheader.links.programs']),
- },
- {
- type: 'item',
- href: `${App.config.MARKETING_SITE_BASE_URL}/course`,
- content: intl.formatMessage(messages['siteheader.links.content.search']),
- onClick: () => {
- sendTrackEvent('edx.bi.dashboard.find_courses_button.clicked', {
- category: 'profile',
- label: 'header',
- });
- },
- },
- ];
-
- const userMenu = [
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}`,
- content: intl.formatMessage(messages['siteheader.user.menu.dashboard']),
- },
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/u/${authentication.username}`,
- content: intl.formatMessage(messages['siteheader.user.menu.profile']),
- },
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/account/settings`,
- content: intl.formatMessage(messages['siteheader.user.menu.account.settings']),
- },
- {
- type: 'item',
- href: App.config.ORDER_HISTORY_URL,
- content: intl.formatMessage(messages['siteheader.user.menu.order.history']),
- },
- {
- type: 'item',
- href: App.config.LOGOUT_URL,
- content: intl.formatMessage(messages['siteheader.user.menu.logout']),
- },
- ];
- const loggedOutItems = [
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/login`,
- content: intl.formatMessage(messages['siteheader.user.menu.login']),
- },
- {
- type: 'item',
- href: `${App.config.LMS_BASE_URL}/register`,
- content: intl.formatMessage(messages['siteheader.user.menu.register']),
- },
- ];
-
- return (
-
- );
-}
-
-ProfileHeader.propTypes = {
- avatar: PropTypes.string,
- intl: intlShape.isRequired,
-};
-
-ProfileHeader.defaultProps = {
- avatar: null,
-};
-
-const mapStateToProps = state => ({
- avatar: state.userAccount.profileImage.hasImage
- ? state.userAccount.profileImage.imageUrlMedium
- : null,
-});
-
-export default connect(
- mapStateToProps,
- {},
-)(injectIntl(ProfileHeader));
diff --git a/header/Header.messages.js b/header/Header.messages.js
deleted file mode 100644
index 19a90c2..0000000
--- a/header/Header.messages.js
+++ /dev/null
@@ -1,61 +0,0 @@
-import { defineMessages } from '@edx/frontend-i18n';
-
-const messages = defineMessages({
- 'siteheader.links.courses': {
- id: 'siteheader.links.courses',
- defaultMessage: 'Courses',
- description: 'Link to the learner course dashboard',
- },
- 'siteheader.links.programs': {
- id: 'siteheader.links.programs',
- defaultMessage: 'Programs',
- description: 'Link to the learner program dashboard',
- },
- 'siteheader.links.content.search': {
- id: 'siteheader.links.content.search',
- defaultMessage: 'Discover New',
- description: 'Link to the content search page',
- },
- 'siteheader.links.schools': {
- id: 'siteheader.links.schools',
- defaultMessage: 'Schools & Partners',
- description: 'Link to the schools and partners landing page',
- },
- 'siteheader.user.menu.dashboard': {
- id: 'siteheader.user.menu.dashboard',
- defaultMessage: 'Dashboard',
- description: 'Link to the user dashboard',
- },
- 'siteheader.user.menu.profile': {
- id: 'siteheader.user.menu.profile',
- defaultMessage: 'Profile',
- description: 'Link to the user profile',
- },
- 'siteheader.user.menu.account.settings': {
- id: 'siteheader.user.menu.account.settings',
- defaultMessage: 'Account',
- description: 'Link to account settings',
- },
- 'siteheader.user.menu.order.history': {
- id: 'siteheader.user.menu.order.history',
- defaultMessage: 'Order History',
- description: 'Link to order history',
- },
- 'siteheader.user.menu.logout': {
- id: 'siteheader.user.menu.logout',
- defaultMessage: 'Logout',
- description: 'Logout link',
- },
- 'siteheader.user.menu.login': {
- id: 'siteheader.user.menu.login',
- defaultMessage: 'Login',
- description: 'Login link',
- },
- 'siteheader.user.menu.register': {
- id: 'siteheader.user.menu.register',
- defaultMessage: 'Sign Up',
- description: 'Link to registration',
- },
-});
-
-export default messages;
diff --git a/header/logo.svg b/header/logo.svg
deleted file mode 100644
index 1fbac45..0000000
--- a/header/logo.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 8e916d7..e1794dd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2024,12 +2024,13 @@
}
},
"@edx/frontend-base": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@edx/frontend-base/-/frontend-base-1.1.0.tgz",
- "integrity": "sha512-V46BKNltEKe20bbFBU79uwVSwk914LZXvoOHQx/vJORok/+37ysq3etIP52dxku/3c942sA6ZXmMskE0POP8pQ==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@edx/frontend-base/-/frontend-base-1.1.2.tgz",
+ "integrity": "sha512-O6PzFi+5zWwDJHyAcAYqptS5c+A49pBnEFaKH+wfau2L+ywXRExD+j7x1KDF1mrgVPMNNp7S1UDySzCnZUGLPw==",
"requires": {
"history": "4.9.0",
"lodash.memoize": "^4.1.2",
+ "lodash.merge": "^4.6.2",
"lodash.pick": "^4.4.0",
"pubsub-js": "1.7.0",
"redux-devtools-extension": "2.13.8",
@@ -2060,32 +2061,24 @@
"query-string": "^5.1.1"
}
},
- "@edx/frontend-component-site-header": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@edx/frontend-component-site-header/-/frontend-component-site-header-2.4.0.tgz",
- "integrity": "sha512-Z1JICIJxG6kcpBck7YxEubPZyiBGS2z0SrRJXX7JcRRpKjDNDcooOQYG/SiZt5OMVVwOOeJdQDxhMtu3zT+fSQ==",
+ "@edx/frontend-component-header": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@edx/frontend-component-header/-/frontend-component-header-1.1.1.tgz",
+ "integrity": "sha512-JFqscNH2eZA5CDrqbEZyFTCWqG/yPiTsGkctf9djqEqndakHsoZ8FuC0tnzN1HMC07uowy9jE8MgI2BWjD4lOA==",
"requires": {
- "react-responsive": "^6.1.1",
- "react-transition-group": "^2.5.2"
+ "react-responsive": "^8.0.1",
+ "react-transition-group": "^4.3.0"
},
"dependencies": {
- "dom-helpers": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
- "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "react-responsive": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-8.0.1.tgz",
+ "integrity": "sha512-caseFCvFFV4QW+JOl7inzDme+avoX4r7GPpQJ+04NCzIgbroV3BU0noPgHGxVCEFKm9IsgcKOBAf+6MqIUeQIg==",
"requires": {
- "@babel/runtime": "^7.1.2"
- }
- },
- "react-transition-group": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
- "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
- "requires": {
- "dom-helpers": "^3.4.0",
- "loose-envify": "^1.4.0",
- "prop-types": "^15.6.2",
- "react-lifecycles-compat": "^3.0.4"
+ "hyphenate-style-name": "^1.0.0",
+ "matchmediaquery": "^0.3.0",
+ "prop-types": "^15.6.1",
+ "shallow-equal": "^1.1.0"
}
}
}
@@ -14103,8 +14096,7 @@
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
"lodash.mergewith": {
"version": "4.6.2",
@@ -17798,11 +17790,6 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.0.tgz",
"integrity": "sha512-LOy+3La39aduxaPfuj+lCXC5RQ8ukjVPAAsFJ3yQ+DIOLf4eR9OMKeWKF0IzjRyE95xMj5QELwiXGgfQsIJguA=="
},
- "react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
- },
"react-proptype-conditional-require": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/react-proptype-conditional-require/-/react-proptype-conditional-require-1.0.4.tgz",
@@ -19362,6 +19349,11 @@
}
}
},
+ "shallow-equal": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.0.tgz",
+ "integrity": "sha512-Z21pVxR4cXsfwpMKMhCEIO1PCi5sp7KEp+CmOpBQ+E8GpHwKOw2sEzk7sgblM3d/j4z4gakoWEoPcjK0VJQogA=="
+ },
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
diff --git a/package.json b/package.json
index 8e4759b..508e1b2 100755
--- a/package.json
+++ b/package.json
@@ -27,9 +27,9 @@
"@cospired/i18n-iso-languages": "2.0.2",
"@edx/frontend-analytics": "2.0.0",
"@edx/frontend-auth": "6.0.1",
- "@edx/frontend-base": "1.1.0",
+ "@edx/frontend-base": "1.1.2",
"@edx/frontend-component-footer": "6.0.2",
- "@edx/frontend-component-site-header": "2.4.0",
+ "@edx/frontend-component-header": "1.1.1",
"@edx/frontend-i18n": "3.0.2",
"@edx/frontend-logging": "3.0.1",
"@edx/paragon": "7.1.2",
diff --git a/src/index.jsx b/src/index.jsx
index ea8b6dd..0d6b669 100755
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -5,10 +5,10 @@ import { NewRelicLoggingService } from '@edx/frontend-logging';
import React from 'react';
import ReactDOM from 'react-dom';
+import Header, { messages as headerMessages } from '@edx/frontend-component-header';
import Footer from '../footer/Footer';
-import Header from '../header/Header';
-import messages from './i18n';
+import appMessages from './i18n';
import './index.scss';
import ProfileMain from './profile/components/ProfileMain';
import configureStore from './store';
@@ -28,4 +28,7 @@ App.subscribe(APP_ERROR, (error) => {
ReactDOM.render(, document.getElementById('root'));
});
-initialize({ messages, loggingService: NewRelicLoggingService });
+initialize({
+ messages: [appMessages, headerMessages],
+ loggingService: NewRelicLoggingService,
+});
diff --git a/src/index.scss b/src/index.scss
index c000ee0..141c238 100755
--- a/src/index.scss
+++ b/src/index.scss
@@ -4,7 +4,7 @@
$fa-font-path: "~font-awesome/fonts";
@import "~font-awesome/scss/font-awesome";
-@import "~@edx/frontend-component-site-header/src/index";
+@import "~@edx/frontend-component-header/src/index";
@import "~@edx/frontend-component-footer/src/lib/scss/site-footer";
.word-break-all {