42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
![]() |
import { useEffect } from "react";
|
||
|
import { useQuizStore } from "@root/quizes/store";
|
||
|
import { quizApi } from "@api/quiz";
|
||
|
import { setQuizes } from "@root/quizes/actions";
|
||
|
import { questionApi } from "@api/question";
|
||
|
import { setQuestions } from "@root/questions/actions";
|
||
|
import { resultApi } from "@api/result";
|
||
|
import { parseFilters } from "./helper";
|
||
|
import { setResults } from "@root/results/actions";
|
||
|
|
||
|
export const useGetData = (filterNew: string, filterDate: string): void => {
|
||
|
const { editQuizId } = useQuizStore();
|
||
|
|
||
|
useEffect(() => {
|
||
|
const getData = async (): Promise<void> => {
|
||
|
try {
|
||
|
if (editQuizId !== null) {
|
||
|
const quizes = await quizApi.getList();
|
||
|
setQuizes(quizes);
|
||
|
|
||
|
const questions = await questionApi.getList({ quiz_id: editQuizId });
|
||
|
setQuestions(questions);
|
||
|
|
||
|
const result = await resultApi.getList(
|
||
|
editQuizId,
|
||
|
0,
|
||
|
parseFilters(filterNew, filterDate),
|
||
|
);
|
||
|
if (result.length === 0) {
|
||
|
console.log("No results found");
|
||
|
}
|
||
|
setResults(result);
|
||
|
}
|
||
|
} catch (error) {
|
||
|
console.error("An error occurred while receiving data: ", error);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
getData();
|
||
|
}, [editQuizId, filterNew, filterDate, setResults]);
|
||
|
};
|