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 @@ - - - - logo - Created with Sketch. - - \ 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 {