@xo-union/tk-component-header-nav
Version:
47 lines (46 loc) • 1.35 kB
JavaScript
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;