Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/packages / features / Header / HeaderFeature.js
Size: Mime:
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