frontAnswerer/src/App.tsx

57 lines
2.0 KiB
TypeScript
Raw Normal View History

import { Box, CssBaseline, ThemeProvider } from "@mui/material";
2024-01-20 12:25:08 +00:00
import { LocalizationProvider } from "@mui/x-date-pickers";
import { AdapterMoment } from "@mui/x-date-pickers/AdapterMoment";
2024-01-20 12:25:08 +00:00
import { ruRU } from '@mui/x-date-pickers/locales';
import moment from "moment";
2024-01-20 12:25:08 +00:00
import { SnackbarProvider } from 'notistack';
import { SWRConfig } from "swr";
2023-12-16 14:55:56 +00:00
import { ViewPage } from "./pages/ViewPublicationPage";
2024-01-20 12:25:08 +00:00
import lightTheme from "./utils/themes/light";
2023-12-16 14:55:56 +00:00
const defaultQuizId = "ef836ff8-35b1-4031-9acf-af5766bac2b2";
moment.locale("ru");
2024-01-20 12:25:08 +00:00
const localeText = ruRU.components.MuiLocalizationProvider.defaultProps.localeText;
2023-12-16 14:55:56 +00:00
interface Props {
widget?: boolean;
quizId?: string;
}
export default function App({ widget = false, quizId }: Props) {
quizId ??= defaultQuizId;
2023-12-16 14:55:56 +00:00
2024-01-20 12:25:08 +00:00
return (
<SWRConfig value={{
revalidateOnFocus: false,
shouldRetryOnError: false,
}}>
<LocalizationProvider dateAdapter={AdapterMoment} adapterLocale="ru" localeText={localeText}>
2024-01-20 12:25:08 +00:00
<ThemeProvider theme={lightTheme}>
<SnackbarProvider
preventDuplicate={true}
style={{ backgroundColor: lightTheme.palette.brightPurple.main }}
>
<CssBaseline />
{widget ? (
<Box sx={{
width: "100%",
height: "100%",
}}>
<ViewPage quizId={quizId} />
</Box>
) : (
<Box sx={{
height: "100dvh",
}}>
<ViewPage quizId={quizId} />
</Box>
)}
</SnackbarProvider>
2024-01-20 12:25:08 +00:00
</ThemeProvider>
</LocalizationProvider>
</SWRConfig>
);
2023-12-16 14:55:56 +00:00
}