UNPKG

@ducor/react

Version:

admin template ui interface

29 lines (28 loc) 873 B
import { useContext } from "react"; import { ThemeContext } from "../provider/theme"; /** * Custom hook to manage theme mode. * * @returns {useThemeModeReturn} An object containing theme mode information and functions to change the theme mode. * @throws Will throw an error if the hook is used outside of a ThemeProvider. */ const useThemeMode = () => { const context = useContext(ThemeContext); if (!context) { throw new Error("useTheme must be used within a ThemeProvider"); } const THEME_MODES = [ "light", "dark", "system", ]; return { internalThemeMode: context.themeMode, THEME_MODES, isDark: context.isDark, currentMode: context.themeMode, setThemeMode: context.setThemeMode, toggleThemeMode: context.toggleThemeMode, }; }; export default useThemeMode;