import React, { ReactNode } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'react-i18next'; import classNames from 'classnames'; import NavBar from '../NavBar'; import Svg from '../Svg'; import Icon from '../Icon'; import IconButton from '../IconButton'; import Dropdown from '../Dropdown'; function Header({ children, menuOptions, isReturnEnabled, onClickReturnButton, isSticky, WhiteLabeling, ...props }): ReactNode { const { t } = useTranslation('Header'); // TODO: this should be passed in as a prop instead and the react-router-dom // dependency should be dropped const onClickReturn = () => { if (isReturnEnabled && onClickReturnButton) { onClickReturnButton(); } }; return (
{/* // TODO: Should preserve filter/sort // Either injected service? Or context (like react router's `useLocation`?) */}
{isReturnEnabled && ( )}
{WhiteLabeling?.createLogoComponentFn?.(React, props) || }
{children}
{t('INVESTIGATIONAL USE ONLY')}
); } Header.propTypes = { menuOptions: PropTypes.arrayOf( PropTypes.shape({ title: PropTypes.string.isRequired, icon: PropTypes.string, onClick: PropTypes.func.isRequired, }) ), children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), isReturnEnabled: PropTypes.bool, isSticky: PropTypes.bool, onClickReturnButton: PropTypes.func, WhiteLabeling: PropTypes.object, }; Header.defaultProps = { isReturnEnabled: true, isSticky: false, }; export default Header;