UNPKG

@equinor/eds-core-react

Version:

The React implementation of the Equinor Design System

48 lines (45 loc) 1 kB
import { useContext, createContext, useState, useCallback } from 'react'; import { jsx } from 'react/jsx-runtime'; const initalState = { isOpen: false, onToggle: null }; const SideBarContext = /*#__PURE__*/createContext(initalState); const SideBarProvider = ({ children, isOpen: isOpenProp = false }) => { const [state, setState] = useState({ onToggle: null, isOpen: isOpenProp }); const { isOpen, onToggle } = state; const setIsOpen = useCallback(open => { setState(prevState => ({ ...prevState, isOpen: open })); onToggle?.(open); }, [onToggle]); const setOnToggle = onToggle => { setState(prevState => ({ ...prevState, onToggle })); }; const value = { setIsOpen, setOnToggle, onToggle, isOpen }; return /*#__PURE__*/jsx(SideBarContext.Provider, { value: value, children: children }); }; const useSideBar = () => useContext(SideBarContext); export { SideBarProvider, useSideBar };