Skip to content

Commit e484c3a

Browse files
'children' is missing in props validation fix
1 parent 504aad0 commit e484c3a

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed
+17-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import React, { createContext, useState, useContext } from "react";
1+
import React, { createContext, useState, useContext, useMemo } from "react";
2+
import PropTypes from "prop-types";
23
import { createMuiTheme, ThemeProvider as MUIThemeProvider } from "@material-ui/core/styles";
34
import { CssBaseline } from "@material-ui/core";
45

@@ -11,20 +12,29 @@ export const ThemeProvider = ({ children }) => {
1112
setDarkMode((prevMode) => !prevMode);
1213
};
1314

14-
const theme = createMuiTheme({
15-
palette: {
16-
type: darkMode ? "dark" : "light",
17-
},
18-
});
15+
const theme = useMemo(
16+
() =>
17+
createMuiTheme({
18+
palette: {
19+
type: darkMode ? "dark" : "light",
20+
},
21+
}),
22+
[darkMode]
23+
);
24+
25+
const contextValue = useMemo(() => ({ darkMode, toggleTheme }), [darkMode]);
1926

2027
return (
21-
<ThemeContext.Provider value={{ darkMode, toggleTheme }}>
28+
<ThemeContext.Provider value={contextValue}>
2229
<MUIThemeProvider theme={theme}>
2330
<CssBaseline />
2431
{children}
2532
</MUIThemeProvider>
2633
</ThemeContext.Provider>
2734
);
2835
};
36+
ThemeProvider.propTypes = {
37+
children: PropTypes.node.isRequired,
38+
};
2939

3040
export const useThemeContext = () => useContext(ThemeContext);

0 commit comments

Comments
 (0)