summaryrefslogtreecommitdiffstats
path: root/src/contexts/DarkMode.tsx
diff options
context:
space:
mode:
authorGravatar Tom van der Lee <tom@vanderlee.io>2024-09-04 10:27:24 +0200
committerGravatar Tom van der Lee <tom@vanderlee.io>2024-09-04 10:27:24 +0200
commita087494f6809a7a8ea8e6c27a105d8c8f0f3839e (patch)
tree617c0dbd168d6e340923dd17b07cc8239787e196 /src/contexts/DarkMode.tsx
parentfe61544bafafc8b4de78cc71cb641af2dfb7b72d (diff)
downloadclient-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.tar.gz
client-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.tar.bz2
client-a087494f6809a7a8ea8e6c27a105d8c8f0f3839e.zip
Updated the libraries
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}