@re-flex/styles
Version:
Core Style Util Package
17 lines (16 loc) • 721 B
JavaScript
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));
};