update: add fetching data, get answer from queries and save to the local storage

This commit is contained in:
abiyasa05 2024-11-04 22:07:02 +07:00
parent 85e8e96017
commit 642554003b

View File

@ -23,6 +23,7 @@ import {
} from "@/shadcn/components/ui/pagination-assessment";
import { useQuery, useMutation } from "@tanstack/react-query";
import {
getAnswersQueryOptions,
submitAssessmentMutationOptions,
uploadFileMutationOptions,
submitValidationMutationOptions,
@ -169,6 +170,34 @@ export default function AssessmentPage() {
}
}, [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) => {
try {
// Cek pertanyaan yang belum dijawab
@ -311,7 +340,7 @@ export default function AssessmentPage() {
// Simpan jawaban ke localStorage dengan ID assessment
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
setAnswers(updatedAnswers);