import React, { useContext } from 'react'; import PropTypes from 'prop-types'; import { getConfig } from '@edx/frontend-platform'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { AppContext } from '@edx/frontend-platform/react'; import AnonymousUserMenu from './AnonymousUserMenu'; import AuthenticatedUserDropdown from './AuthenticatedUserDropdown'; import messages from './messages'; function LinkedLogo({ href, src, alt, ...attributes }) { return ( {alt} ); } LinkedLogo.propTypes = { href: PropTypes.string.isRequired, src: PropTypes.string.isRequired, alt: PropTypes.string.isRequired, }; function LearningHeader({ courseOrg, courseNumber, courseTitle, intl, showUserDropdown, }) { const { authenticatedUser } = useContext(AppContext); const headerLogo = ( ); return (
{intl.formatMessage(messages.skipNavLink)}
{headerLogo}
{courseOrg} {courseNumber} {courseTitle}
{showUserDropdown && authenticatedUser && ( )} {showUserDropdown && !authenticatedUser && ( )}
); } LearningHeader.propTypes = { courseOrg: PropTypes.string, courseNumber: PropTypes.string, courseTitle: PropTypes.string, intl: intlShape.isRequired, showUserDropdown: PropTypes.bool, }; LearningHeader.defaultProps = { courseOrg: null, courseNumber: null, courseTitle: null, showUserDropdown: true, }; export default injectIntl(LearningHeader);