import React, { useState } from "react"; import AdminLayout from "./Layout/AdminLayout"; import { MdOutlineFileUpload } from "react-icons/md"; import { Link } from "@inertiajs/react"; import HitApi from "../../Utils/HitApi"; import Swal from "sweetalert2"; const AddKuis = (props) => { const { materi, soal } = props; const [form, setForm] = useState({ soal: "", gambar_soal: undefined, jawaban: [ { id: 0, jawaban: "", benar: 0, }, { id: 1, jawaban: "", benar: 0, }, { id: 2, jawaban: "", benar: 0, }, { id: 3, jawaban: "", benar: 0, }, ], }); const handleSave = () => { let error = false; // buatkan datanya ke formdata const formData = new FormData(); formData.append("id", materi.id); formData.append("soal", form.soal); formData.append("gambar_soal", form.gambar_soal); form.jawaban.forEach((item, i) => { if (item.jawaban == "") { error = true; } formData.append(`jawaban[${i}]`, item.jawaban); formData.append(`gambar_jawaban[${i}]`, item.gambar_jawaban); formData.append(`benar[${i}]`, item.benar); }); if (error) { Swal.fire("Gagal", "Data tidak boleh kosong", "error"); return; } Swal.fire({ title: "Konfirmasi", text: "Apakah anda yakin ingin menyimpan data?", icon: "warning", showCancelButton: true, confirmButtonColor: "#3085d6", cancelButtonColor: "#d33", confirmButtonText: "Ya", }).then((result) => { if (result.isConfirmed) { Swal.fire({ title: "Loading", html: '
', // add html attribute if you want or remove allowOutsideClick: false, showConfirmButton: false, }); HitApi({ url: "/api/v1/quiz/add", method: "POST", body: formData, isFormData: true, onSuccess: () => { Swal.fire( "Berhasil", "Data berhasil disimpan", "success" ); // refresh page location.reload(); }, onError: () => { // Swal.fire("Gagal", "Data gagal ditambahkan", "error"); Swal.close(); }, }); } }); }; const state = { form, setForm, }; const [previewImage, setPreviewImage] = useState(); return (

Input Soal

{previewImage && ( Soal { e.target.style.display = "block"; }} onError={(e) => { e.target.style.display = "none"; }} /> )} { setPreviewImage(e.target.files[0]); setForm({ ...form, gambar_soal: e.target.files[0], }); }} className="flex w-full h-full opacity-0 absolute" type="file" name="" id="" />

Upload Gambar

Jawaban

{form.jawaban.map((item, index) => ( ))}
{/* */}

No Soal

{materi.kuis.map((item, index) => { return ( ); })}
); }; const CardNoSoal = ({ no = 1, isBaru = false }) => { return (
{no}
); }; const CardJawaban = ({ id, jawaban, gambar, isTrue = false, state }) => { const { form, setForm } = state; const [preview, setPreview] = useState(); return ( ); }; export default AddKuis;