frontPanel/src/stores/quizes/hooks.ts

35 lines
1022 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import useSWR from "swr";
import { useQuizStore } from "./store";
import { quizApi } from "@api/quiz";
import { setQuizes } from "./actions";
import { isAxiosError } from "axios";
import { devlog } from "@frontend/kitui";
import { enqueueSnackbar } from "notistack";
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 };
}
export function useCurrentQuiz() {
const { quizes, editQuizId } = useQuizStore();
const quiz = quizes.find(q => q.backendId === editQuizId);
return quiz;
}