Pull Request branch dev-clone to main #1

Merged
gitea merged 429 commits from dev-clone into main 2024-12-23 09:31:34 +00:00
Showing only changes of commit 054c20412d - Show all commits

View File

@ -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>
))}