gatsby-plugin-theme-switcher
Version:
React theme switcher with hooks and preventing the initial flash
41 lines (33 loc) • 1.1 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.onRenderBody = onRenderBody;
exports.wrapRootElement = void 0;
var _react = _interopRequireDefault(require("react"));
var _themeScript = _interopRequireDefault(require("./theme-script"));
var _themeContext = require("./theme-context");
function onRenderBody({
setPreBodyComponents
}, pluginOptions) {
// eslint-disable-next-line no-param-reassign
delete pluginOptions.plugins;
const {
defaultDarkTheme,
defaultLightTheme,
themeStorageKey,
minify
} = pluginOptions;
setPreBodyComponents([/*#__PURE__*/_react.default.createElement(_themeScript.default, {
key: "gatsby-plugin-use-theme-switcher",
defaultDarkTheme: defaultDarkTheme,
defaultLightTheme: defaultLightTheme,
themeStorageKey: themeStorageKey,
minify: minify
})]);
}
const wrapRootElement = ({
element
}) => {
return /*#__PURE__*/_react.default.createElement(_themeContext.ThemeProvider, null, element);
};
exports.wrapRootElement = wrapRootElement;