* refactor: replace @edx/paragon with @openedx/paragon * fix: replaced frontend-build to @openedx to fix jest issues * refactor: removed old unused package --------- Co-authored-by: Abdullah Waheed <abdullah.waheed@arbisoft.com>
74 lines
1.7 KiB
JavaScript
74 lines
1.7 KiB
JavaScript
import React, { useState } from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { useToggle, ModalPopup } from '@openedx/paragon';
|
|
import HeaderBody from './HeaderBody';
|
|
import MobileMenu from './MobileMenu';
|
|
|
|
const MobileHeader = ({
|
|
mainMenuDropdowns,
|
|
...props
|
|
}) => {
|
|
const [isOpen, , close, toggle] = useToggle(false);
|
|
const [target, setTarget] = useState(null);
|
|
|
|
return (
|
|
<>
|
|
<HeaderBody
|
|
{...props}
|
|
isMobile
|
|
setModalPopupTarget={setTarget}
|
|
toggleModalPopup={toggle}
|
|
isModalPopupOpen={isOpen}
|
|
/>
|
|
<ModalPopup
|
|
hasArrow
|
|
placement="bottom"
|
|
positionRef={target}
|
|
isOpen={isOpen}
|
|
onClose={close}
|
|
onEscapeKey={close}
|
|
className="mobile-menu-container"
|
|
>
|
|
<MobileMenu {...{ mainMenuDropdowns }} />
|
|
</ModalPopup>
|
|
</>
|
|
);
|
|
};
|
|
|
|
MobileHeader.propTypes = {
|
|
studioBaseUrl: PropTypes.string.isRequired,
|
|
logoutUrl: PropTypes.string.isRequired,
|
|
number: PropTypes.string,
|
|
org: PropTypes.string,
|
|
title: PropTypes.string,
|
|
logo: PropTypes.string,
|
|
logoAltText: PropTypes.string,
|
|
authenticatedUserAvatar: PropTypes.string,
|
|
username: PropTypes.string,
|
|
isAdmin: PropTypes.bool,
|
|
mainMenuDropdowns: PropTypes.arrayOf(PropTypes.shape({
|
|
id: PropTypes.string,
|
|
buttonTitle: PropTypes.string,
|
|
items: PropTypes.arrayOf(PropTypes.shape({
|
|
href: PropTypes.string,
|
|
title: PropTypes.string,
|
|
})),
|
|
})),
|
|
outlineLink: PropTypes.string,
|
|
};
|
|
|
|
MobileHeader.defaultProps = {
|
|
logo: null,
|
|
logoAltText: null,
|
|
number: null,
|
|
org: null,
|
|
title: null,
|
|
authenticatedUserAvatar: null,
|
|
username: null,
|
|
isAdmin: false,
|
|
mainMenuDropdowns: [],
|
|
outlineLink: null,
|
|
};
|
|
|
|
export default MobileHeader;
|