Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

65 рядки
1.6 KiB

  1. import PropTypes from 'prop-types';
  2. import { useMemo } from 'react';
  3. // material-ui
  4. import { CssBaseline, StyledEngineProvider } from '@mui/material';
  5. import { createTheme, ThemeProvider } from '@mui/material/styles';
  6. // project import
  7. import Palette from './palette';
  8. import Typography from './typography';
  9. import CustomShadows from './shadows';
  10. import componentsOverride from './overrides';
  11. // ==============================|| DEFAULT THEME - MAIN ||============================== //
  12. export default function ThemeCustomization({ children }) {
  13. const theme = Palette('light', 'default');
  14. // eslint-disable-next-line react-hooks/exhaustive-deps
  15. const themeTypography = Typography(`'Public Sans', sans-serif`);
  16. const themeCustomShadows = useMemo(() => CustomShadows(theme), [theme]);
  17. const themeOptions = useMemo(
  18. () => ({
  19. breakpoints: {
  20. values: {
  21. xs: 0,
  22. sm: 768,
  23. md: 1024,
  24. lg: 1266,
  25. xl: 1536
  26. }
  27. },
  28. direction: 'ltr',
  29. mixins: {
  30. toolbar: {
  31. minHeight: 60,
  32. paddingTop: 8,
  33. paddingBottom: 8
  34. }
  35. },
  36. palette: theme.palette,
  37. customShadows: themeCustomShadows,
  38. typography: themeTypography
  39. }),
  40. [theme, themeTypography, themeCustomShadows]
  41. );
  42. const themes = createTheme(themeOptions);
  43. themes.components = componentsOverride(themes);
  44. return (
  45. <StyledEngineProvider injectFirst>
  46. <ThemeProvider theme={themes}>
  47. <CssBaseline />
  48. {children}
  49. </ThemeProvider>
  50. </StyledEngineProvider>
  51. );
  52. }
  53. ThemeCustomization.propTypes = {
  54. children: PropTypes.node
  55. };