mod-arch-shared
Version:
Shared library for modular architecture micro-frontend projects
23 lines • 1.07 kB
JavaScript
import * as React from 'react';
import { createTheme } from '@mui/material';
import { ThemeProvider as MUIThemeProvider } from '@mui/material/styles';
import { Theme } from '../utilities/const';
import '../style/MUI-theme.scss';
export const ThemeContext = React.createContext({
theme: Theme.Default,
});
export const ThemeProvider = ({ theme = Theme.Default, children, }) => {
const themeValue = React.useMemo(() => ({ theme }), [theme]);
const createMUITheme = React.useMemo(() => createTheme({ cssVariables: true }), []);
React.useEffect(() => {
// Apply the theme based on the theme enum value
if (theme === Theme.MUI) {
document.documentElement.classList.add(Theme.MUI);
}
else {
document.documentElement.classList.remove(Theme.MUI);
}
}, [theme]);
return (React.createElement(ThemeContext.Provider, { value: themeValue }, theme === Theme.MUI ? (React.createElement(MUIThemeProvider, { theme: createMUITheme }, children)) : (children)));
};
//# sourceMappingURL=ThemeContext.js.map