import React, { useState } from "react"; import UserLayout from "./Layout/UserLayout"; import Swal from "sweetalert2"; const Quiz = (props) => { const [data, setData] = useState(props.data); const [page, setPage] = useState(1); const limit = 5; const totalPage = Math.ceil(data.length / limit); const [selectedAnswer, setSelectedAnswer] = useState({}); const state = { selectedAnswer, setSelectedAnswer, }; const handleSubmit = async () => { let nilai = 0; let totalBenar = 0; let totalSalah = 0; data.forEach((item) => { item.jawaban.forEach((jawaban) => { if (jawaban.benar === 1) { if (selectedAnswer[item.id] === jawaban.id) { nilai += 1; totalBenar += 1; } else { totalSalah += 1; } } }); }); nilai = (nilai / data.length) * 100; const jawaban = Object.entries(selectedAnswer).map(([key, value]) => ({ kuis_id: key, jawaban_id: value, })); try { const response = await fetch(`/api/v1/quiz/submit`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ materi_id: props.materi_id, user_id: props.auth.id, jawaban: jawaban, nilai: nilai, total_benar: totalBenar, total_salah: totalSalah, }), }); const responseData = await response.json(); Swal.fire({ title: "Nilai Anda", text: `Nilai anda adalah ${nilai}`, imageUrl: "/assets/images/overlay3.png", imageWidth: 400, customClass: { image: "object-cover", }, imageHeight: 200, imageAlt: "Custom image", confirmButtonText: "Ok", }).then(() => { location.href = "/user/"; }); } catch (error) { console.error("Error submitting quiz:", error); // Handle error condition, if needed } }; return (
{data .slice((page - 1) * limit, page * limit) .map((item, index) => ( ))}
{page > 1 && ( )} {page < totalPage && ( )} {page === totalPage && ( )}
); }; const CardSoal = ({ no, pertanyaan, gambar, jawaban, state }) => { return (

No {no}

{pertanyaan}

{gambar && gambar !== "" && gambar !== null && gambar !== "undefined" && (
Gambar Soal { e.target.style.display = "block"; }} onError={(e) => { e.target.style.display = "none"; }} />
)}
{jawaban.map((item, index) => ( ))}
); }; const CardJawaban = ({ item, state }) => { return ( ); }; export default Quiz;