/* eslint-disable jsx-a11y/control-has-associated-label */ /* eslint-disable jsx-a11y/anchor-has-content */ import PropTypes from 'prop-types'; import React, { useContext } from 'react'; import Responsive from 'react-responsive'; import { AppContext } from '@edx/frontend-platform/react'; import { ensureConfig } from '@edx/frontend-platform'; import { injectIntl, intlShape, } from '@edx/frontend-platform/i18n'; import DesktopHeader from './DesktopHeader'; import MobileHeader from './MobileHeader'; import messages from './Header.messages'; import StudioLogoSVG from './assets/studio-logo.svg'; ensureConfig([ 'STUDIO_BASE_URL', 'LOGOUT_URL', 'LOGIN_URL', ], 'Header component'); function Header({ courseId, courseNumber, courseOrg, courseTitle, intl, }) { const { authenticatedUser, config } = useContext(AppContext); const mainMenu = [ { type: 'submenu', content: intl.formatMessage(messages['header.links.content']), submenuContent: ( <>
> ), }, { type: 'submenu', content: intl.formatMessage(messages['header.links.settings']), submenuContent: ( <> > ), }, { type: 'submenu', content: intl.formatMessage(messages['header.links.tools']), submenuContent: ( <> > ), }, ]; const studioHomeItem = { type: 'item', href: config.STUDIO_BASE_URL, content: intl.formatMessage(messages['header.user.menu.studio']), }; const logoutItem = { type: 'item', href: config.LOGOUT_URL, content: intl.formatMessage(messages['header.user.menu.logout']), }; let userMenu = []; if (authenticatedUser !== null) { if (authenticatedUser.administrator) { userMenu = [ studioHomeItem, { type: 'item', href: `${config.STUDIO_BASE_URL}/maintenance`, content: intl.formatMessage(messages['header.user.menu.maintenance']), }, logoutItem, ]; } else { userMenu = [ studioHomeItem, logoutItem, ]; } } const courseLockUp = ( {courseOrg} {courseNumber} {courseTitle} ); const props = { logo: StudioLogoSVG, logoAltText: 'Studio edX', siteName: 'edX', logoDestination: config.STUDIO_BASE_URL, courseLockUp, courseId, username: authenticatedUser !== null ? authenticatedUser.username : null, avatar: authenticatedUser !== null ? authenticatedUser.avatar : null, mainMenu, userMenu, }; return ( <>