gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/sidebar/sidebar-provider.tsx · v0.5.6
Source
1 1eb203e Mrdn 2y ago import { createContext, useContext } from "react";
2 88bdde2 Mrdn 2y ago import type { 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 88bdde2 Mrdn 2y ago open?: boolean;
9 88bdde2 Mrdn 2y ago setOpen?: (state: boolean) => void;
10 1eb203e Mrdn 2y ago }
11 1eb203e Mrdn 2y ago
12 1eb203e Mrdn 2y ago export const SidebarContext = createContext<SidebarContextProps | null>(null);
13 1eb203e Mrdn 2y ago
14 1eb203e Mrdn 2y ago export const useSidebarContext = () => {
15 1eb203e Mrdn 2y ago const ctx = useContext(SidebarContext);
16 1eb203e Mrdn 2y ago if (!ctx)
17 88bdde2 Mrdn 2y ago throw new Error(
18 88bdde2 Mrdn 2y ago "Sidebar.* component must be rendered as child of Sidebar ",
19 88bdde2 Mrdn 2y ago );
20 1eb203e Mrdn 2y ago return ctx;
21 88bdde2 Mrdn 2y ago };