UNPKG

@re-flex/styles

Version:
17 lines (16 loc) 721 B
import React, { createContext, useContext, useLayoutEffect, useState, } from "react"; import DefaultTheme from "./Themes/Default"; export const ThemeContext = createContext(DefaultTheme); export const useTheme = () => useContext(ThemeContext); export var UI_ACTIVE_THEME = DefaultTheme; export const ThemeProvider = ({ children, theme, }) => { const [userDefinedTheme, setUserDefinedState] = useState(theme); useLayoutEffect(() => { UI_ACTIVE_THEME = theme; let timeOut = setTimeout(() => { setUserDefinedState(theme); clearTimeout(timeOut); }, 1); }, [theme]); return (React.createElement(ThemeContext.Provider, { value: userDefinedTheme }, children)); };