forked from VinokurovVE/tests
91 lines
1.7 KiB
TypeScript
91 lines
1.7 KiB
TypeScript
import "@fontsource/inter";
|
|
import React, { useEffect } from 'react'
|
|
import ReactDOM from 'react-dom/client'
|
|
import App from './App.tsx'
|
|
import './index.css'
|
|
import { ThemeProvider } from '@emotion/react'
|
|
import { createTheme } from '@mui/material'
|
|
import { ruRU } from '@mui/material/locale'
|
|
import { getDarkMode, usePrefStore } from "./store/preferences.ts";
|
|
|
|
const mainTheme = createTheme(
|
|
{
|
|
typography: {
|
|
fontFamily: [
|
|
'Inter'
|
|
].join(',')
|
|
},
|
|
components: {
|
|
MuiListItemButton: {
|
|
defaultProps: {
|
|
//disableRipple: true
|
|
}
|
|
},
|
|
MuiButton: {
|
|
defaultProps: {
|
|
//disableRipple: true
|
|
}
|
|
},
|
|
MuiButtonBase: {
|
|
defaultProps: {
|
|
//disableRipple: true,
|
|
}
|
|
},
|
|
MuiButtonGroup: {
|
|
defaultProps: {
|
|
//disableRipple: true,
|
|
}
|
|
},
|
|
MuiIconButton: {
|
|
defaultProps: {
|
|
}
|
|
},
|
|
MuiIcon: {
|
|
defaultProps: {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
ruRU
|
|
)
|
|
|
|
const darkTheme = createTheme(
|
|
{
|
|
...mainTheme,
|
|
palette: {
|
|
mode: "dark",
|
|
primary: { main: '#1976d2' },
|
|
},
|
|
},
|
|
);
|
|
|
|
const lightTheme = createTheme(
|
|
{
|
|
...mainTheme,
|
|
palette: {
|
|
mode: "light",
|
|
primary: { main: '#1976d2' },
|
|
},
|
|
},
|
|
);
|
|
|
|
function ThemedApp() {
|
|
const prefStore = usePrefStore()
|
|
|
|
useEffect(() => {
|
|
getDarkMode()
|
|
}, [])
|
|
|
|
return (
|
|
<ThemeProvider theme={prefStore.darkMode ? darkTheme : lightTheme}>
|
|
<App />
|
|
</ThemeProvider>
|
|
)
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render(
|
|
<React.StrictMode>
|
|
<ThemedApp />
|
|
</React.StrictMode>,
|
|
)
|