2023-12-13 17:16:03 +00:00
|
|
|
|
import useSWR from "swr";
|
2023-11-14 13:37:20 +00:00
|
|
|
|
import { useQuizStore } from "./store";
|
2023-12-13 17:16:03 +00:00
|
|
|
|
import { quizApi } from "@api/quiz";
|
|
|
|
|
|
import { setQuizes } from "./actions";
|
|
|
|
|
|
import { isAxiosError } from "axios";
|
|
|
|
|
|
import { devlog } from "@frontend/kitui";
|
|
|
|
|
|
import { enqueueSnackbar } from "notistack";
|
2023-11-13 18:04:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
2023-12-14 09:40:53 +00:00
|
|
|
|
|
2023-12-13 17:16:03 +00:00
|
|
|
|
export function useQuizes() {
|
|
|
|
|
|
const { isLoading, error, isValidating } = useSWR("quizes", () => quizApi.getList(), {
|
|
|
|
|
|
onSuccess: setQuizes,
|
|
|
|
|
|
onError: (error: unknown) => {
|
|
|
|
|
|
const message = isAxiosError<string>(error)
|
|
|
|
|
|
? error.response?.data ?? ""
|
|
|
|
|
|
: "";
|
|
|
|
|
|
|
|
|
|
|
|
devlog("Error getting quiz list", error);
|
|
|
|
|
|
enqueueSnackbar("Не удалось получить квизы");
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
|
|
|
|
|
const quizes = useQuizStore(state => state.quizes);
|
|
|
|
|
|
|
|
|
|
|
|
return { quizes, isLoading, error, isValidating };
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2023-11-13 18:04:51 +00:00
|
|
|
|
export function useCurrentQuiz() {
|
2023-12-14 09:40:53 +00:00
|
|
|
|
const { quizes, editQuizId } = useQuizStore();
|
2023-11-13 18:04:51 +00:00
|
|
|
|
|
2023-12-14 09:40:53 +00:00
|
|
|
|
const quiz = quizes.find(q => q.backendId === editQuizId);
|
2023-11-14 13:10:41 +00:00
|
|
|
|
|
2023-11-27 23:07:24 +00:00
|
|
|
|
return quiz;
|
2023-11-13 18:04:51 +00:00
|
|
|
|
}
|