light_dark.js 988 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React, { useState } from "react";
  2. import { createTheme } from "@material-ui/core/styles";
  3. import { ThemeProvider } from "@material-ui/styles";
  4. import { CssBaseline } from "@material-ui/core";
  5. import blue from "@material-ui/core/colors/blue";
  6. import green from "@material-ui/core/colors/green";
  7. const light = createTheme({
  8. palette: {
  9. type: "light",
  10. primary: blue,
  11. secondary: green,
  12. },
  13. });
  14. const dark = createTheme({
  15. palette: {
  16. type: "dark",
  17. primary: green,
  18. secondary: blue,
  19. },
  20. });
  21. const Theme = ({ children, theme, ...rest }) =>
  22. (
  23. <ThemeProvider theme={theme}>
  24. <CssBaseline />
  25. {children}
  26. </ThemeProvider>
  27. )
  28. export const withTheme = (Component) => {
  29. return (props) => {
  30. const [theme, setTheme] = useState();
  31. const handleChange = (c) => {
  32. setDarkMode(c)
  33. }
  34. return (
  35. <Theme theme={theme}>
  36. <Component {...props} theme={theme} onThemeChange={setDarkMode} />
  37. </Theme>
  38. );
  39. };
  40. };