@atlaskit/navigation-system
Version:
The latest navigation system for Atlassian apps.
28 lines (27 loc) • 1.16 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import React, { useState } from 'react';
import { SetSideNavVisibilityState } from './set-side-nav-visibility-state';
import { SideNavVisibilityState } from './side-nav-visibility-state';
/**
* Manages the side nav visibility state and provides the context.
*/
export var SideNavVisibilityProvider = function SideNavVisibilityProvider(_ref) {
var children = _ref.children,
defaultCollapsed = _ref.defaultCollapsed;
var initialState = typeof defaultCollapsed === 'boolean' ? {
desktop: defaultCollapsed ? 'collapsed' : 'expanded',
mobile: 'collapsed',
flyout: 'closed',
lastTrigger: null
} : null;
// Defaults to null so we can determine if the value has been set yet (for SSR)
var _useState = useState(initialState),
_useState2 = _slicedToArray(_useState, 2),
sideNavState = _useState2[0],
setSideNavState = _useState2[1];
return /*#__PURE__*/React.createElement(SideNavVisibilityState.Provider, {
value: sideNavState
}, /*#__PURE__*/React.createElement(SetSideNavVisibilityState.Provider, {
value: setSideNavState
}, children));
};