Skip to content

Instantly share code, notes, and snippets.

@brunosabot
Created March 15, 2020 12:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brunosabot/44795880a4029b46d84b3255db71f740 to your computer and use it in GitHub Desktop.
Save brunosabot/44795880a4029b46d84b3255db71f740 to your computer and use it in GitHub Desktop.
import PropTypes from "prop-types";
import React, { createContext, useMemo, useState } from "react";
import { useReduxDevtools } from "./ReduxDevtoolProvider";
export const ThemeContext = createContext({ actions: {}, values: {} });
const ThemeProvider = ({ children }) => {
const [theme, setLocalTheme] = useState("light");
const setTheme = useReduxDevtools(setLocalTheme, "setTheme");
const value = useMemo(
() => ({
actions: { setTheme },
values: { theme }
}),
[theme, setTheme]
);
return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;
};
ThemeProvider.propTypes = {
children: PropTypes.node.isRequired
};
export default ThemeProvider;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment