UNPKG

@xo-union/tk-component-header-nav

Version:
47 lines (46 loc) 1.35 kB
import React from "react"; import PropTypes from "prop-types"; import UnionOverlay from "@xo-union/tk-component-overlay"; import { useHeaderNavContext } from "../Context.js"; // Render plain div during SSR to avoid disabling UIs while app loads const SSRFriendlyOverlayDiv = props => { const { children } = props; const [mounted, setMounted] = React.useState(false); React.useEffect(() => { setMounted(true); }, []); if (mounted) { return /*#__PURE__*/React.createElement("div", props); } return /*#__PURE__*/React.createElement("div", null, children); }; process.env.NODE_ENV !== "production" ? SSRFriendlyOverlayDiv.propTypes = { children: PropTypes.node } : void 0; const Overlay = _ref => { let { children } = _ref; const { classes, mobileMedia, navMenuState, navMenuActions, navMenuRefs } = useHeaderNavContext(); return /*#__PURE__*/React.createElement("div", { className: classes['overlay-container'] }, /*#__PURE__*/React.createElement(UnionOverlay, { as: SSRFriendlyOverlayDiv, color: "light", fixedToRelative: true, enabled: navMenuState.isHamburgerOpenInMobile || mobileMedia.no, className: classes.overlay }, children)); }; process.env.NODE_ENV !== "production" ? Overlay.propTypes = { children: PropTypes.node } : void 0; export default Overlay;