diff --git a/apps/frontend/src/routes/_assessmentLayout/assessment/index.lazy.tsx b/apps/frontend/src/routes/_assessmentLayout/assessment/index.lazy.tsx index 8ff3ed6..468eaac 100644 --- a/apps/frontend/src/routes/_assessmentLayout/assessment/index.lazy.tsx +++ b/apps/frontend/src/routes/_assessmentLayout/assessment/index.lazy.tsx @@ -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 @@ -303,19 +332,19 @@ export default function AssessmentPage() { const handleAnswerChange = (questionId: string, optionId: string) => { const assessmentId = getQueryParam("id"); - + if (!assessmentId) { console.error("Assessment ID tidak ditemukan"); return; } - + // 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); - + // Call the mutation to submit the option submitOptionMutation.mutate({ optionId,