Files
encoach_frontend_new_v2/src/hooks/queries/useExamSession.ts
2026-04-26 03:12:52 +04:00

36 lines
1.2 KiB
TypeScript

import { useQuery, useMutation } from "@tanstack/react-query";
import { queryKeys } from "./keys";
import { examSessionService } from "@/services/exam-session.service";
import type { ExamAutoSave } from "@/types";
export function useExamSession(examId: number) {
return useQuery({
queryKey: queryKeys.examSession.session(examId),
queryFn: () => examSessionService.getSession(examId),
enabled: !!examId,
});
}
export function useExamStatus(examId: number, enabled: boolean) {
return useQuery({
queryKey: queryKeys.examSession.status(examId),
queryFn: () => examSessionService.getStatus(examId),
enabled: !!examId && enabled,
refetchInterval: 10000,
});
}
export function useExamAutoSave() {
return useMutation({
mutationFn: (data: { examId: number; payload: ExamAutoSave }) =>
examSessionService.autoSave(data.examId, data.payload),
});
}
export function useExamSubmit() {
return useMutation({
mutationFn: (data: { examId: number; attempt_id: number; answers: { question_id: number; answer: unknown }[] }) =>
examSessionService.submit(data.examId, { attempt_id: data.attempt_id, answers: data.answers }),
});
}