UNPKG

@retail-ui/theme

Version:
3 lines (2 loc) 887 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-use"),r=e.createContext({theme:"dark",toggleTheme:function(){return null}});exports.ThemeContext=r,exports.ThemeProvider=function(n){var u=n.children,o=e.useState("light"),c=o[0],i=o[1];t.useIsomorphicLayoutEffect((function(){i(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")}),[]);var s=function(t){var r=e.useRef();return e.useEffect((function(){r.current=t})),r.current}(c);return e.useEffect((function(){document.documentElement.classList.remove("theme-"+s),document.documentElement.classList.add("theme-"+c)}),[c,s]),e.createElement(r.Provider,{value:{theme:c,toggleTheme:function(){i("light"===c?"dark":"light")}}},u)},exports.useThemeCtx=function(){return e.useContext(r)}; //# sourceMappingURL=theme.cjs.production.min.js.map