32 lines
858 B
JavaScript
32 lines
858 B
JavaScript
// src/app/context/SidebarContext.js
|
|
'use client';
|
|
import { createContext, useContext, useState } from "react";
|
|
|
|
const SidebarContext = createContext();
|
|
|
|
export function SidebarProvider({ children }) {
|
|
const [isCollapsed, setIsCollapsed] = useState(false); // Changed from isOpen to isCollapsed
|
|
|
|
const toggleSidebar = () => setIsCollapsed(!isCollapsed);
|
|
const collapseSidebar = () => setIsCollapsed(true);
|
|
const expandSidebar = () => setIsCollapsed(false);
|
|
|
|
return (
|
|
<SidebarContext.Provider value={{
|
|
isCollapsed,
|
|
toggleSidebar,
|
|
collapseSidebar,
|
|
expandSidebar
|
|
}}>
|
|
{children}
|
|
</SidebarContext.Provider>
|
|
);
|
|
}
|
|
|
|
export function useSidebar() {
|
|
const context = useContext(SidebarContext);
|
|
if (!context) {
|
|
throw new Error('useSidebar must be used within a SidebarProvider');
|
|
}
|
|
return context;
|
|
} |