summaryrefslogtreecommitdiffstats
path: root/src/contexts/DarkMode.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/contexts/DarkMode.tsx')
-rw-r--r--src/contexts/DarkMode.tsx41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/contexts/DarkMode.tsx b/src/contexts/DarkMode.tsx
deleted file mode 100644
index fd536b2..0000000
--- a/src/contexts/DarkMode.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
1import * as React from "react";
2import {
3 Context,
4 createContext,
5 PropsWithChildren,
6 useEffect,
7 useMemo,
8 useState,
9} from "react";
10import { ThemeConfig } from "bootstrap-darkmode";
11
12interface DarkModeApi {
13 darkMode: boolean;
14 toggle: () => void;
15}
16
17export const DarkModeContext = createContext<Partial<DarkModeApi>>(
18 {}
19) as Context<DarkModeApi>;
20
21export default function DarkModeProvider({ children }: PropsWithChildren<any>) {
22 const themeConfig = useMemo(() => new ThemeConfig(), []);
23 const [darkMode, setDarkMode] = useState(
24 () => themeConfig.getTheme() === "dark"
25 );
26
27 useEffect(() => {
28 themeConfig.setTheme(darkMode ? "dark" : "light");
29 }, [darkMode]);
30
31 return (
32 <DarkModeContext.Provider
33 value={{
34 darkMode,
35 toggle: () => setDarkMode((dm) => !dm),
36 }}
37 >
38 {children}
39 </DarkModeContext.Provider>
40 );
41}