UNPKG

stackpress

Version:

Incept is a content management framework.

26 lines (25 loc) 1.08 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = ThemeProvider; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const universal_cookie_1 = __importDefault(require("universal-cookie")); const ThemeContext_js_1 = __importDefault(require("./ThemeContext.js")); const cookie = new universal_cookie_1.default(); function ThemeProvider(props) { const { children, theme: init = 'light' } = props; const [theme, setTheme] = (0, react_1.useState)(init); const toggle = () => { const newTheme = theme === 'light' ? 'dark' : 'light'; setTheme(newTheme); cookie.set('theme', newTheme); }; const value = { theme, toggle }; (0, react_1.useEffect)(() => { setTheme(cookie.get('theme') || init); }, []); return ((0, jsx_runtime_1.jsx)(ThemeContext_js_1.default.Provider, { value: value, children: children })); }