Repository URL to install this package:
|
Version:
0.0.15 ▾
|
import * as tslib_1 from "tslib";
/**
* @file @todo `<TopBar key="top" />` => `{application.isDesktopOrLarger && <TopBar key="top" />}`
* ^ but in prod build, different dom is output, sketchy, annoying... RCA
*/
import * as React from 'react';
import { observer } from 'xmobx/mobx-react';
import { ClickBoundary } from '@skava/packages/ui';
// domain
import { application } from '@skava/state';
import Menu from '@skava/packages/features/Navigation/Menu';
// local
import { TopBar } from './TopBar';
import { StyledSemanticBannerHeader, StyledMiddleBar } from './styled';
import state from './state';
import { setRender } from './mobileMenuHamburger';
const hasNoScroll = () => document.body.className === 'no-scroll';
const renderUserConsent = () => '';
/**
* @@hack @@todo @@fixme to remove attributes in head element @see SKA-2954
*
* @note this is here for the modal, there is a PR for this in ui-component-library from @michael
*/
const removeAriaHidden = () => {
const headElement = typeof document === 'object' ? document.getElementsByTagName('head')[0] : '';
if (headElement && headElement.hasAttribute('aria-hidden')) {
[...headElement.attributes].forEach(attr => headElement.removeAttribute(attr.name));
}
};
let Header = class Header extends React.Component {
// @vetri - fix for making the menudropdown close on clicking the MenuInnerNavItem
// @james - ^ does not work now
componentWillMount() {
console.debug('[header] componentWillMount');
state.setMenuDropDownVisibility();
}
componentDidMount() {
// requestIdleCallback?
setRender();
}
render() {
const { className } = this.props;
return (React.createElement(React.Fragment, null,
React.createElement(StyledSemanticBannerHeader, { className: className, isScrollingDown: application.isScrollingDown, noScroll: hasNoScroll, key: "hh" },
React.createElement(TopBar, { key: "top" }),
React.createElement(StyledMiddleBar, { key: "middle" }),
application.isDesktopOrLarger && (React.createElement(ClickBoundary, { onClickOutside: state.handleClickBoundary, key: "click" },
React.createElement(Menu, { isVisible: state.isMenuDropDownVisible })))),
renderUserConsent()));
}
};
Header = tslib_1.__decorate([
observer
], Header);
export { Header };
export default Header;
//# sourceMappingURL=HeaderFeature.js.map