UNPKG

@atlaskit/navigation-system

Version:

The latest navigation system for Atlassian apps.

34 lines (32 loc) • 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSideNavVisibility = void 0; var _react = require("react"); var _sideNavVisibilityState = require("./side-nav-visibility-state"); /** * This hook is intended to be used internally within the `@atlaskit/navigation-system` package. * * It handles using whether to use the desktop visibility state from _context_, or the _defaultCollapsed_ arg (which comes * from component props) - based on whether the context has been set yet. In SSR / initial render, the context would not have been * set yet, so we need to use the _defaultCollapsed_ argument value instead. */ var useSideNavVisibility = exports.useSideNavVisibility = function useSideNavVisibility() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$defaultCollapsed = _ref.defaultCollapsed, defaultCollapsed = _ref$defaultCollapsed === void 0 ? false : _ref$defaultCollapsed; var sideNavState = (0, _react.useContext)(_sideNavVisibilityState.SideNavVisibilityState); // If the context value is `null`, it means we are still in SSR, and should use the default values. // For desktop, it comes from the `defaultCollapsed` prop, and for mobile, it is always `false`. if (sideNavState === null) { return { isExpandedOnDesktop: !defaultCollapsed, isExpandedOnMobile: false }; } return { isExpandedOnDesktop: sideNavState.desktop === 'expanded', isExpandedOnMobile: sideNavState.mobile === 'expanded' }; };