UNPKG

gatsby-plugin-theme-switcher

Version:
39 lines (30 loc) 1.02 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = exports.ThemeProvider = void 0; var _react = _interopRequireDefault(require("react")); var _useLocalStorage = _interopRequireDefault(require("./use-local-storage")); /* eslint-disable react/prop-types */ const ThemeContext = /*#__PURE__*/_react.default.createContext(); const ThemeProvider = ({ themeStorageKey = "theme", children }) => { const [theme, setTheme] = (0, _useLocalStorage.default)(themeStorageKey, null); const switchTheme = newTheme => { // eslint-disable-next-line no-undef const root = document.body; root.classList.remove(theme); root.classList.add(newTheme); setTheme(newTheme); }; return /*#__PURE__*/_react.default.createElement(ThemeContext.Provider, { value: { theme, switchTheme } }, children); }; exports.ThemeProvider = ThemeProvider; var _default = ThemeContext; exports.default = _default;