39941-vm/src/index.js
2026-05-10 05:17:18 +00:00

46 lines
1.5 KiB
JavaScript

import ReactDOM from 'react-dom/client';
import axios from 'axios';
import { ThemeProvider as ThemeProviderV5 } from '@mui/material/styles';
import { StyledEngineProvider } from '@mui/material/styles';
import App from './components/App';
import { LayoutProvider } from './context/LayoutContext';
import { UserProvider } from './context/UserContext';
import { ManagementProvider } from './context/ManagementContext';
import {
ThemeProvider as ThemeChangeProvider,
ThemeStateContext,
} from './context/ThemeContext';
import CssBaseline from '@mui/material/CssBaseline';
import config from '../src/config';
import 'leaflet/dist/leaflet.css';
axios.defaults.baseURL = config.baseURLApi;
axios.defaults.headers.common['Content-Type'] = 'application/json';
const token = localStorage.getItem('token');
if (token) {
axios.defaults.headers.common['Authorization'] = 'Bearer ' + token;
}
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<LayoutProvider>
<UserProvider>
<StyledEngineProvider injectFirst>
<ThemeChangeProvider>
<ThemeStateContext.Consumer>
{(theme) => (
<ThemeProviderV5 theme={theme}>
<ManagementProvider>
<CssBaseline />
<App />
</ManagementProvider>
</ThemeProviderV5>
)}
</ThemeStateContext.Consumer>
</ThemeChangeProvider>
</StyledEngineProvider>
</UserProvider>
</LayoutProvider>,
);