gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/sidebar/sidebar-provider.tsx · v0.3.0-alpha7
Source
1 1eb203e Mrdn 2y ago import { createContext, useContext } from "react";
2 1eb203e Mrdn 2y ago import { SidebarItemGroup } from "./types";
3 1eb203e Mrdn 2y ago
4 1eb203e Mrdn 2y ago interface SidebarContextProps {
5 1eb203e Mrdn 2y ago sidebar: SidebarItemGroup;
6 1eb203e Mrdn 2y ago collapsed: boolean;
7 1eb203e Mrdn 2y ago setCollapsed: (state: boolean) => void;
8 1eb203e Mrdn 2y ago }
9 1eb203e Mrdn 2y ago
10 1eb203e Mrdn 2y ago export const SidebarContext = createContext<SidebarContextProps | null>(null);
11 1eb203e Mrdn 2y ago
12 1eb203e Mrdn 2y ago export const useSidebarContext = () => {
13 1eb203e Mrdn 2y ago const ctx = useContext(SidebarContext);
14 1eb203e Mrdn 2y ago if (!ctx)
15 1eb203e Mrdn 2y ago throw new Error('Sidebar.* component must be rendered as child of Sidebar ');
16 1eb203e Mrdn 2y ago return ctx;
17 1eb203e Mrdn 2y ago }