@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
41 lines (40 loc) • 1.47 kB
JavaScript
"use client";
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-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";
/**
* Nav top bar
*/ const NavTop = /*#__PURE__*/ forwardRef(({ children, className, preLogo, logo, ...props }, ref)=>{
const scrollDirection = useScrollDirection();
const { mobileOpen } = useNav();
logo = typeof logo === "string" ? /*#__PURE__*/ _jsx(NavLogo, {
children: logo
}) : logo;
return /*#__PURE__*/ _jsx(NavLocationProvider, {
where: "top",
children: /*#__PURE__*/ _jsxs("header", {
...props,
className: classnames("bf-nav bf-nav-top", className, {
"bf-nav-top-hide-for-mobile": scrollDirection === "down" && !mobileOpen
}),
ref: ref,
children: [
preLogo,
/*#__PURE__*/ _jsx("div", {
className: "bf-nav-top-logo",
children: logo
}),
/*#__PURE__*/ _jsx("div", {
className: "bf-nav-top-content",
children: children
})
]
})
});
});
NavTop.displayName = "Nav.Top";
export default NavTop;