@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
113 lines (112 loc) • 2.5 kB
JavaScript
"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;