UNPKG

@intility/bifrost-react

Version:

React library for Intility's design system, Bifrost.

113 lines (112 loc) 2.5 kB
"use client"; import { c as _c } from "react-compiler-runtime"; import { forwardRef } from "react"; import classnames from "classnames"; import NavLocationProvider from "./NavLocationContext.internal.js"; import useScrollDirection from "../../hooks/useScrollDirection.js"; import useNav from "../../hooks/useNav.js"; import NavLogo from "./Nav.Logo.js"; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; const NavTop = /*#__PURE__*/forwardRef((t0, ref) => { const $ = _c(22); let children; let className; let logo; let preLogo; let props; if ($[0] !== t0) { ({ children, className, preLogo, logo, ...props } = t0); $[0] = t0; $[1] = children; $[2] = className; $[3] = logo; $[4] = preLogo; $[5] = props; } else { children = $[1]; className = $[2]; logo = $[3]; preLogo = $[4]; props = $[5]; } const scrollDirection = useScrollDirection(); const { mobileOpen } = useNav(); let t1; if ($[6] !== logo) { t1 = typeof logo === "string" ? /*#__PURE__*/_jsx(NavLogo, { children: logo }) : logo; $[6] = logo; $[7] = t1; } else { t1 = $[7]; } logo = t1; const t2 = props; const t3 = scrollDirection === "down" && !mobileOpen; let t4; if ($[8] !== className || $[9] !== t3) { t4 = classnames("bf-nav bf-nav-top", className, { "bf-nav-top-hide-for-mobile": t3 }); $[8] = className; $[9] = t3; $[10] = t4; } else { t4 = $[10]; } let t5; if ($[11] !== logo) { t5 = /*#__PURE__*/_jsx("div", { className: "bf-nav-top-logo", children: logo }); $[11] = logo; $[12] = t5; } else { t5 = $[12]; } let t6; if ($[13] !== children) { t6 = /*#__PURE__*/_jsx("div", { className: "bf-nav-top-content", children: children }); $[13] = children; $[14] = t6; } else { t6 = $[14]; } let t7; if ($[15] !== preLogo || $[16] !== props || $[17] !== ref || $[18] !== t4 || $[19] !== t5 || $[20] !== t6) { t7 = /*#__PURE__*/_jsx(NavLocationProvider, { where: "top", children: /*#__PURE__*/_jsxs("header", { ...t2, className: t4, ref: ref, children: [preLogo, t5, t6] }) }); $[15] = preLogo; $[16] = props; $[17] = ref; $[18] = t4; $[19] = t5; $[20] = t6; $[21] = t7; } else { t7 = $[21]; } return t7; }); NavTop.displayName = "Nav.Top"; export default NavTop;