upgrade squzanswerer to 1.0.4

fetch and transform data for QuizAnswerer
This commit is contained in:
nflnkr 2024-02-16 18:53:44 +03:00
parent 06d8ce02d8
commit d6a029c6c0
4 changed files with 77 additions and 7 deletions

@ -7,7 +7,7 @@
"@emotion/react": "^11.10.5",
"@emotion/styled": "^11.10.5",
"@frontend/kitui": "^1.0.63",
"@frontend/squzanswerer": "^1.0.1",
"@frontend/squzanswerer": "^1.0.4",
"@mui/icons-material": "^5.10.14",
"@mui/material": "^5.10.14",
"@mui/x-date-pickers": "^6.16.1",

@ -61,6 +61,7 @@ export interface QuizQuestionBase {
openedModalSettings: boolean;
deleted: boolean;
deleteTimeoutId: number;
required: boolean;
content: {
id: string;
hint: QuestionHint;

@ -1,19 +1,81 @@
import { QuizView } from "@frontend/squzanswerer";
import { questionApi } from "@api/question";
import { devlog } from "@frontend/kitui";
import { QuizAnswerer } from "@frontend/squzanswerer";
import { rawQuestionToQuestion } from "@model/question/question";
import { Box } from "@mui/material";
import { useQuizes } from "@root/quizes/hooks";
import { isAxiosError } from "axios";
import { enqueueSnackbar } from "notistack";
import { useParams } from "react-router-dom";
import useSWR from "swr";
export default function ViewPublicationPage() {
const quizId = useParams().quizId;
const {
quizes,
error: quizesError,
isLoading: quizesIsLoading,
} = useQuizes();
if (!quizId) return null;
const quiz = quizes?.find((quiz) => quiz.qid === quizId);
const {
data: rawQuestions,
isLoading: questionsIsLoading,
error: questionsError,
} = useSWR(
["questions", quiz?.backendId],
([, id]) => questionApi.getList({ quiz_id: id }),
{
onError: (error) => {
const message = isAxiosError<string>(error)
? error.response?.data ?? ""
: "";
devlog("Error getting question list", error);
enqueueSnackbar(`Не удалось получить вопросы. ${message}`);
},
},
);
if (quizesError) {
console.log(`Error fetching quiz ${quizId}`, quizesError);
return null;
}
if (!quizes || quizesIsLoading) return null;
if (!rawQuestions || questionsIsLoading) return null;
if (!quiz) throw new Error("Quiz not found");
if (!rawQuestions) throw new Error("Questions not found");
const questions = rawQuestions.map(rawQuestionToQuestion);
return (
<Box
sx={{
height: "100dvh",
}}
>
<QuizView quizId={quizId} />
<QuizAnswerer
quizSettings={{
cnt: rawQuestions?.length,
questions,
recentlyCompleted: false,
settings: {
fp: quiz.fingerprinting,
delay: 0,
due: quiz.due_to,
lim: quiz.limit,
name: quiz.name,
pausable: quiz.pausable,
rep: quiz.repeatable,
cfg: quiz.config,
},
}}
quizId={quizId}
/>
</Box>
);
}

@ -1415,10 +1415,12 @@
immer "^10.0.2"
reconnecting-eventsource "^1.6.2"
"@frontend/squzanswerer@^1.0.1":
version "1.0.1"
resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/43/packages/npm/@frontend/squzanswerer/-/@frontend/squzanswerer-1.0.1.tgz#c266ae5402f0d9f2a288fa78ffa50201fa92ad94"
integrity sha1-wmauVALw2fKiiPp4/6UCAfqSrZQ=
"@frontend/squzanswerer@^1.0.4":
version "1.0.4"
resolved "https://penahub.gitlab.yandexcloud.net/api/v4/projects/43/packages/npm/@frontend/squzanswerer/-/@frontend/squzanswerer-1.0.4.tgz#f16e26a2a22a1d1dbb83cb20132e39f0c4e006d8"
integrity sha1-8W4moqIqHR27g8sgEy458MTgBtg=
dependencies:
country-flag-emoji-polyfill "^0.1.8"
"@humanwhocodes/config-array@^0.11.6":
version "0.11.7"
@ -3958,6 +3960,11 @@ cosmiconfig@^7, cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
path-type "^4.0.0"
yaml "^1.10.0"
country-flag-emoji-polyfill@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/country-flag-emoji-polyfill/-/country-flag-emoji-polyfill-0.1.8.tgz#d2cfb23dd2f949b80d83eb9822b613bf62957173"
integrity sha512-Mbah52sADS3gshUYhK5142gtUuJpHYOXlXtLFI3Ly4RqgkmPMvhX9kMZSTqDM8P7UqtSW99eHKFphhQSGXA3Cg==
craco-alias@^3.0.1:
version "3.0.1"
resolved "https://registry.npmjs.org/craco-alias/-/craco-alias-3.0.1.tgz"