update: index lazy for save answer on local storage
This commit is contained in:
parent
e4dfd97f8f
commit
054c20412d
|
|
@ -150,11 +150,35 @@ export default function AssessmentPage() {
|
|||
// Inside the AssessmentPage function:
|
||||
const submitAnswerMutation = useMutation(submitAnswerMutationOptions());
|
||||
|
||||
const handleAnswerChange = (optionId: string) => {
|
||||
useEffect(() => {
|
||||
const savedAnswers = localStorage.getItem("assessmentAnswers");
|
||||
if (savedAnswers) {
|
||||
setAnswers(JSON.parse(savedAnswers));
|
||||
}
|
||||
}, []);
|
||||
|
||||
const handleAnswerChange = (questionId: string, optionId: string) => {
|
||||
const assessmentId = getQueryParam("id"); // Mengambil assessmentId otomatis dari URL
|
||||
|
||||
if (!assessmentId) {
|
||||
console.error("Assessment ID tidak ditemukan");
|
||||
return;
|
||||
}
|
||||
|
||||
// Simpan jawaban ke localStorage
|
||||
const updatedAnswers = { ...answers, [questionId]: optionId };
|
||||
localStorage.setItem("assessmentAnswers", JSON.stringify(updatedAnswers));
|
||||
|
||||
// Update state
|
||||
setAnswers(updatedAnswers);
|
||||
|
||||
// Kirim jawaban ke backend
|
||||
submitAnswerMutation.mutate({
|
||||
optionId: optionId,
|
||||
assessmentId: assessmentId || "",
|
||||
validationInformation: "someValidationInfo", // Sesuaikan validasi yang relevan
|
||||
optionId,
|
||||
assessmentId, // Menggunakan assessmentId dari URL
|
||||
validationInformation: JSON.stringify({
|
||||
questionId,
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
|
|
@ -364,7 +388,7 @@ export default function AssessmentPage() {
|
|||
</Flex>
|
||||
|
||||
{question.options?.length > 0 ? (
|
||||
<Radio.Group>
|
||||
<Radio.Group value={answers[question.questionId] || ""}>
|
||||
<div className="flex flex-col gap-4">
|
||||
{question.options.map((option: any) => (
|
||||
<label
|
||||
|
|
@ -380,16 +404,8 @@ export default function AssessmentPage() {
|
|||
size="md"
|
||||
radius="xl"
|
||||
style={{ pointerEvents: "none" }}
|
||||
onChange={() => {
|
||||
submitAnswerMutation.mutate({
|
||||
optionId: option.optionId,
|
||||
assessmentId: assessmentId || "",
|
||||
validationInformation: JSON.stringify({
|
||||
info: "jfjforjfocn",
|
||||
questionId: question.questionId,
|
||||
}),
|
||||
});
|
||||
}}
|
||||
checked={answers[question.questionId] === option.optionId} // Untuk menampilkan jawaban yang sudah dipilih
|
||||
onChange={() => handleAnswerChange(question.questionId, option.optionId)} // Memanggil handleAnswerChange dengan questionId dan optionId
|
||||
/>
|
||||
</label>
|
||||
))}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user