UNPKG

orcs-design-system

Version:
60 lines 1.63 kB
import React, { createContext, useContext, useState, useMemo } from "react"; import PropTypes from "prop-types"; import { jsx as _jsx } from "react/jsx-runtime"; const SideNavStateContext = /*#__PURE__*/createContext(); export const useSideNavStateContext = () => { const context = useContext(SideNavStateContext); if (!context) { throw new Error("useSideNavStateContext must be used within a SideNavStateProvider"); } return context; }; export const SideNavStateProvider = _ref => { let { children } = _ref; const [expandedItem, setExpandedItem] = useState(null); const [isExpanded, setIsExpanded] = useState(false); const [expandedWidth, setExpandedWidth] = useState(null); const [isLocked, setIsLocked] = useState(false); const value = useMemo(() => ({ expandedItem, setExpandedItem, isExpanded, setIsExpanded, expandedWidth, setExpandedWidth, isLocked, setIsLocked }), [expandedItem, isExpanded, expandedWidth, isLocked]); return /*#__PURE__*/_jsx(SideNavStateContext.Provider, { value: value, children: children }); }; SideNavStateProvider.propTypes = { children: PropTypes.node.isRequired, initialViewing: PropTypes.any }; export default SideNavStateContext; SideNavStateProvider.__docgenInfo = { "description": "", "methods": [], "displayName": "SideNavStateProvider", "props": { "children": { "description": "", "type": { "name": "node" }, "required": true }, "initialViewing": { "description": "", "type": { "name": "any" }, "required": false } } };