frontAnswerer/src/QuizAnswerer.tsx

48 lines
1.9 KiB
TypeScript
Raw Normal View History

import { CssBaseline, ThemeProvider } from "@mui/material";
import { LocalizationProvider } from "@mui/x-date-pickers";
import { AdapterMoment } from "@mui/x-date-pickers/AdapterMoment";
import { ruRU } from '@mui/x-date-pickers/locales';
import ErrorBoundaryFallback from "@ui_kit/ErrorBoundaryFallback";
2024-02-02 14:35:02 +00:00
import LoadingSkeleton from "@ui_kit/LoadingSkeleton";
import { handleComponentError } from "@utils/handleComponentError";
import moment from "moment";
import { SnackbarProvider } from 'notistack';
2024-02-02 14:35:02 +00:00
import { Suspense } from "react";
import { ErrorBoundary } from "react-error-boundary";
import { SWRConfig } from "swr";
import ViewPublicationPage from "./pages/ViewPublicationPage/ViewPublicationPage";
import lightTheme from "./utils/themes/light";
moment.locale("ru");
const localeText = ruRU.components.MuiLocalizationProvider.defaultProps.localeText;
2024-02-02 14:35:02 +00:00
export default function QuizAnswerer() {
return (
<SWRConfig value={{
revalidateOnFocus: false,
shouldRetryOnError: false,
}}>
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale="ru" localeText={localeText}>
<ThemeProvider theme={lightTheme}>
<SnackbarProvider
preventDuplicate={true}
style={{ backgroundColor: lightTheme.palette.brightPurple.main }}
>
<CssBaseline />
2024-02-02 14:35:02 +00:00
<ErrorBoundary
FallbackComponent={ErrorBoundaryFallback}
2024-02-02 14:35:02 +00:00
onError={handleComponentError}
>
<Suspense fallback={<LoadingSkeleton />}>
<ViewPublicationPage />
2024-02-02 14:35:02 +00:00
</Suspense>
</ErrorBoundary>
</SnackbarProvider>
</ThemeProvider>
</LocalizationProvider>
</SWRConfig>
);
2024-02-02 14:35:02 +00:00
}