blob: fe4ce95a461d1e1f8ee5aff4f80560021c1bffeb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import {useEffect, useMemo, useState} from "react";
import {ThemeConfig} from "bootstrap-darkmode";
export interface UseDarkMode {
darkMode: boolean
toggle: () => void
}
export default function useDarkMode() {
const themeConfig = useMemo(() => new ThemeConfig(), []);
const [darkMode, setDarkMode] = useState(() => themeConfig.getTheme() === 'dark')
useEffect(() => {
themeConfig.setTheme(darkMode ? 'dark' : 'light');
}, [darkMode])
return {
darkMode,
toggle: () => setDarkMode(dm => !dm),
}
}
|