nextuiq
Version:
NextUIQ is a modern, lightweight, and developer-friendly UI component library for React and Next.js. Built with TypeScript and Tailwind CSS, it offers customizable, accessible, and performance-optimized components with built-in dark mode, theme customizat
2 lines (1 loc) • 1.04 kB
JavaScript
Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index46.js"),t=require("react"),r=t.createContext(void 0);exports.SidebarProvider=({children:s})=>{const[i,n]=t.useState(!0),[o,u]=t.useState(!1),[a,d]=t.useState(!1),[l,c]=t.useState(!1),[b,S]=t.useState(null),[v,x]=t.useState(null),m=t.useCallback((()=>{const e=window.innerWidth<768;d(e),e||u(!1)}),[]);t.useEffect((()=>(m(),window.addEventListener("resize",m),()=>window.removeEventListener("resize",m))),[m]);const w=t.useCallback((()=>{n((e=>!e))}),[]),g=t.useCallback((()=>{u((e=>!e))}),[]),p=t.useCallback((e=>{x((t=>t===e?null:e))}),[]),C=t.useMemo((()=>({isExpanded:!a&&i,isMobileOpen:o,isHovered:l,activeItem:b,openSubmenu:v,toggleSidebar:w,toggleMobileSidebar:g,setIsHovered:c,setActiveItem:S,toggleSubmenu:p})),[a,i,o,l,b,v,w,g,p]);return e.jsxRuntimeExports.jsx(r.Provider,{value:C,children:s})},exports.useSidebar=()=>{const e=t.useContext(r);if(!e)throw new Error("useSidebar must be used within a SidebarProvider");return e};
;