forked from NikolasRummel/Sorting-Visualizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproviders.tsx
34 lines (28 loc) · 1.03 KB
/
providers.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"use client";
import * as React from "react";
import Navbar from "@/components/navigation/navbar";
import { ThemeProvider } from "@/components/theme-provider";
interface ProvidersProps {
children: React.ReactNode;
}
interface ProvidersContextType {
openSidebar: boolean;
setOpenSidebar: React.Dispatch<React.SetStateAction<boolean>>;
}
export const ProvidersContext = React.createContext<ProvidersContextType>({
openSidebar: false,
setOpenSidebar: () => {},
});
export function Providers({ children }: ProvidersProps) {
const [openSidebar, setOpenSidebar] = React.useState<boolean>(false);
return (
<ProvidersContext.Provider value={{ openSidebar, setOpenSidebar }}>
<ThemeProvider attribute="class">
<Navbar openSidebar={openSidebar} setOpenSidebar={setOpenSidebar} />
<main className={`min-h-screen ${openSidebar ? "ml-56" : ""}`}>
{children}
</main>
</ThemeProvider>
</ProvidersContext.Provider>
);
}