mirror of
https://github.com/D4M13N-D3V/comissions-app-ui.git
synced 2025-03-14 00:05:07 +00:00
61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
// ** React Imports
|
|
import { ReactNode } from 'react'
|
|
|
|
// ** MUI Imports
|
|
import CssBaseline from '@mui/material/CssBaseline'
|
|
import GlobalStyles from '@mui/material/GlobalStyles'
|
|
import { ThemeProvider, createTheme, responsiveFontSizes } from '@mui/material/styles'
|
|
|
|
// ** Type Imports
|
|
import { Settings } from '../../core/context/settingsContext'
|
|
|
|
// ** Theme Config
|
|
import themeConfig from '../../configs/themeConfig'
|
|
|
|
// ** Theme Override Imports
|
|
import overrides from './overrides'
|
|
import typography from './typography'
|
|
|
|
// ** Theme
|
|
import themeOptions from './ThemeOptions'
|
|
|
|
// ** Global Styles
|
|
import GlobalStyling from './globalStyles'
|
|
|
|
interface Props {
|
|
settings: Settings
|
|
children: ReactNode
|
|
}
|
|
|
|
const ThemeComponent = (props: Props) => {
|
|
// ** Props
|
|
const { settings, children } = props
|
|
|
|
// ** Merged ThemeOptions of Core and User
|
|
const coreThemeConfig = themeOptions(settings)
|
|
|
|
// ** Pass ThemeOptions to CreateTheme Function to create partial theme without component overrides
|
|
let theme = createTheme(coreThemeConfig)
|
|
|
|
// ** Continue theme creation and pass merged component overrides to CreateTheme function
|
|
theme = createTheme(theme, {
|
|
components: { ...overrides(theme) },
|
|
typography: { ...typography(theme) }
|
|
})
|
|
|
|
// ** Set responsive font sizes to true
|
|
if (themeConfig.responsiveFontSizes) {
|
|
theme = responsiveFontSizes(theme)
|
|
}
|
|
|
|
return (
|
|
<ThemeProvider theme={theme}>
|
|
<CssBaseline />
|
|
<GlobalStyles styles={() => GlobalStyling(theme) as any} />
|
|
{children}
|
|
</ThemeProvider>
|
|
)
|
|
}
|
|
|
|
export default ThemeComponent
|