@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
42 lines (40 loc) • 943 B
JavaScript
"use client";
import { c as _c } from "react-compiler-runtime";
import { useContext } from "react";
import { NavContext } from "../components/Nav/NavContext.internal.js";
import useBreakpoint from "./useBreakpoint.js";
/**
* Access the `<Nav>` context
*
* @returns an object containing:
* - bool `sideCollapsed`
* - function `setSideCollapsed(bool)`
* - bool `mobileOpen`
* - function `setMobileOpen(bool)`
* - bool `isMobile`
*
* @see https://bifrost.intility.com/react/useNav
*
* @example
* const {
* sideCollapsed // `true` if the <Nav> ancestor sidebar is collapsed
* } = useNav();
*/
export default function useNav() {
const $ = _c(3);
const nav = useContext(NavContext);
const isMobile = useBreakpoint(null, "xl");
let t0;
if ($[0] !== isMobile || $[1] !== nav) {
t0 = {
isMobile,
...nav
};
$[0] = isMobile;
$[1] = nav;
$[2] = t0;
} else {
t0 = $[2];
}
return t0;
}