import * as React from "react"; import { Context, createContext, ReactElement, ReactNode, useEffect, useMemo, useState, } from "react"; import { ThemeConfig } from "bootstrap-darkmode"; interface DarkModeApi { darkMode: boolean; toggle: () => void; } export const DarkModeContext = createContext>( {} ) as Context; interface DarkModeProviderProps { children: ReactNode; } export default function DarkModeProvider({ children }: DarkModeProviderProps) { const themeConfig = useMemo(() => new ThemeConfig(), []); const [darkMode, setDarkMode] = useState( () => themeConfig.getTheme() === "dark" ); useEffect(() => { themeConfig.setTheme(darkMode ? "dark" : "light"); }, [darkMode]); return ( setDarkMode((dm) => !dm), }} > {children} ); }