42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
import { createRoot } from 'react-dom/client';
|
|
import CssBaseline from '@mui/material/CssBaseline';
|
|
import { ThemeProvider } from '@mui/material/styles';
|
|
import { Provider } from 'react-redux';
|
|
import { SnackbarProvider } from 'notistack';
|
|
import AuthBootstrap from './components/AuthBootstrap';
|
|
import App from './App';
|
|
import { store } from './store';
|
|
import { getActiveTheme } from './theme';
|
|
import './index.css';
|
|
|
|
async function clearDevServiceWorker() {
|
|
if (!import.meta.env.DEV || !('serviceWorker' in navigator)) return;
|
|
const regs = await navigator.serviceWorker.getRegistrations();
|
|
await Promise.all(regs.map((r) => r.unregister()));
|
|
if ('caches' in window) {
|
|
const keys = await caches.keys();
|
|
await Promise.all(keys.map((k) => caches.delete(k)));
|
|
}
|
|
}
|
|
|
|
if (import.meta.env.DEV) {
|
|
void clearDevServiceWorker();
|
|
}
|
|
|
|
createRoot(document.getElementById('root')).render(
|
|
<Provider store={store}>
|
|
<ThemeProvider theme={getActiveTheme()}>
|
|
<CssBaseline />
|
|
<SnackbarProvider
|
|
maxSnack={3}
|
|
autoHideDuration={2000}
|
|
anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}
|
|
>
|
|
<AuthBootstrap>
|
|
<App />
|
|
</AuthBootstrap>
|
|
</SnackbarProvider>
|
|
</ThemeProvider>
|
|
</Provider>,
|
|
);
|