frontPanel/src/index.tsx
2024-02-20 11:10:03 +03:00

73 lines
2.1 KiB
TypeScript
Executable File

import { CssBaseline, ThemeProvider, Button } from "@mui/material";
import { LocalizationProvider } from "@mui/x-date-pickers";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import { ruRU } from "@mui/x-date-pickers/locales";
import App from "./App";
import dayjs from "dayjs";
import "dayjs/locale/ru";
import { SnackbarProvider, closeSnackbar } from "notistack";
import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend";
import { createRoot } from "react-dom/client";
import "./index.css";
import lightTheme from "./utils/themes/light";
import { SWRConfig } from "swr";
import { BrowserRouter } from "react-router-dom";
import moment from "moment";
import { polyfillCountryFlagEmojis } from "country-flag-emoji-polyfill";
import CloseIcon from "@icons/CloseBold";
import type { SnackbarKey } from "notistack";
dayjs.locale("ru");
moment.locale("ru");
polyfillCountryFlagEmojis();
const localeText =
ruRU.components.MuiLocalizationProvider.defaultProps.localeText;
const snackbarAction = (snackbarId: SnackbarKey) => (
<Button
onClick={() => closeSnackbar(snackbarId)}
sx={{
minWidth: "auto",
padding: "0px",
"&:hover": { backgroundColor: "transparent" },
}}
>
<CloseIcon />
</Button>
);
const root = createRoot(document.getElementById("root")!);
root.render(
<SWRConfig
value={{
revalidateOnFocus: false,
shouldRetryOnError: false,
}}
>
<DndProvider backend={HTML5Backend}>
<LocalizationProvider
dateAdapter={AdapterDayjs}
adapterLocale="ru"
localeText={localeText}
>
<ThemeProvider theme={lightTheme}>
<BrowserRouter>
<SnackbarProvider
SnackbarProps={{ onTouchStart: () => closeSnackbar() }}
action={snackbarAction}
preventDuplicate={true}
style={{ backgroundColor: lightTheme.palette.brightPurple.main }}
>
<CssBaseline />
<App />
</SnackbarProvider>
</BrowserRouter>
</ThemeProvider>
</LocalizationProvider>
</DndProvider>
</SWRConfig>,
);