update: add fetching data, get answer from queries and save to the local storage
This commit is contained in:
parent
85e8e96017
commit
642554003b
|
|
@ -23,6 +23,7 @@ import {
|
||||||
} from "@/shadcn/components/ui/pagination-assessment";
|
} from "@/shadcn/components/ui/pagination-assessment";
|
||||||
import { useQuery, useMutation } from "@tanstack/react-query";
|
import { useQuery, useMutation } from "@tanstack/react-query";
|
||||||
import {
|
import {
|
||||||
|
getAnswersQueryOptions,
|
||||||
submitAssessmentMutationOptions,
|
submitAssessmentMutationOptions,
|
||||||
uploadFileMutationOptions,
|
uploadFileMutationOptions,
|
||||||
submitValidationMutationOptions,
|
submitValidationMutationOptions,
|
||||||
|
|
@ -169,6 +170,34 @@ export default function AssessmentPage() {
|
||||||
}
|
}
|
||||||
}, [aspectsQuery.data, selectedSubAspectId, data?.data]);
|
}, [aspectsQuery.data, selectedSubAspectId, data?.data]);
|
||||||
|
|
||||||
|
// Fetching answers for the assessment
|
||||||
|
const { data: answersData } = useQuery(
|
||||||
|
getAnswersQueryOptions(assessmentId || "", page, limit) // Memanggil query untuk mengambil jawaban dengan argumen yang diperlukan
|
||||||
|
);
|
||||||
|
|
||||||
|
// Effect untuk mengatur answers dari data yang diambil
|
||||||
|
useEffect(() => {
|
||||||
|
const assessmentId = getQueryParam("id"); // Ambil assessmentId dari query params
|
||||||
|
if (!assessmentId) {
|
||||||
|
console.error("Assessment ID tidak ditemukan");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ambil jawaban dari localStorage berdasarkan ID assessment
|
||||||
|
const savedAnswers = localStorage.getItem(`assessmentAnswers_${assessmentId}`);
|
||||||
|
if (savedAnswers) {
|
||||||
|
setAnswers(JSON.parse(savedAnswers)); // Set state answers dengan data dari local storage
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
// Mengambil jawaban dari local storage saat komponen dimuat
|
||||||
|
useEffect(() => {
|
||||||
|
const storedAnswers = localStorage.getItem('assessmentAnswers');
|
||||||
|
if (storedAnswers) {
|
||||||
|
setAnswers(JSON.parse(storedAnswers)); // Set state answers dengan data dari local storage
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleConfirmFinish = async (assessmentId: string) => {
|
const handleConfirmFinish = async (assessmentId: string) => {
|
||||||
try {
|
try {
|
||||||
// Cek pertanyaan yang belum dijawab
|
// Cek pertanyaan yang belum dijawab
|
||||||
|
|
@ -303,19 +332,19 @@ export default function AssessmentPage() {
|
||||||
|
|
||||||
const handleAnswerChange = (questionId: string, optionId: string) => {
|
const handleAnswerChange = (questionId: string, optionId: string) => {
|
||||||
const assessmentId = getQueryParam("id");
|
const assessmentId = getQueryParam("id");
|
||||||
|
|
||||||
if (!assessmentId) {
|
if (!assessmentId) {
|
||||||
console.error("Assessment ID tidak ditemukan");
|
console.error("Assessment ID tidak ditemukan");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Simpan jawaban ke localStorage dengan ID assessment
|
// Simpan jawaban ke localStorage dengan ID assessment
|
||||||
const updatedAnswers = { ...answers, [questionId]: optionId };
|
const updatedAnswers = { ...answers, [questionId]: optionId };
|
||||||
localStorage.setItem(`assessmentAnswers_${assessmentId}`, JSON.stringify(updatedAnswers));
|
localStorage.setItem(`assessmentAnswers_${assessmentId}`, JSON.stringify(updatedAnswers)); // Simpan berdasarkan ID assessment
|
||||||
|
|
||||||
// Update state
|
// Update state
|
||||||
setAnswers(updatedAnswers);
|
setAnswers(updatedAnswers);
|
||||||
|
|
||||||
// Call the mutation to submit the option
|
// Call the mutation to submit the option
|
||||||
submitOptionMutation.mutate({
|
submitOptionMutation.mutate({
|
||||||
optionId,
|
optionId,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user