import { Fragment, useState } from "react"; import { Dialog, Listbox, Transition } from "@headlessui/react"; import { CheckIcon, ChevronDownIcon } from "@heroicons/react/20/solid"; import { toast } from "react-toastify"; const severityOptions = [ { id: 1, name: "Low" }, { id: 2, name: "Medium" }, { id: 3, name: "High" }, { id: 4, name: "Critical" }, ]; const BugReportForm = ({ isOpen, setIsOpen }) => { const [bugDescription, setBugDescription] = useState(""); const [severity, setSeverity] = useState(severityOptions[0]); function closeModal() { setIsOpen(false); setBugDescription(""); setSeverity(severityOptions[0]); } const handleSubmit = async (e) => { e.preventDefault(); const bugReport = { desc: bugDescription, severity: severity.name, url: window.location.href, createdAt: new Date().toISOString(), }; try { const res = await fetch("/api/v2/admin/bug-report", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ data: bugReport, }), }); const json = await res.json(); toast.success(json.message, { hideProgressBar: true, theme: "colored", }); closeModal(); } catch (err) { console.log(err); toast.error("Something went wrong: " + err.message, { hideProgressBar: true, theme: "colored", }); } }; return ( <>

Report a Bug

{severity.name} {severityOptions.map((person, personIdx) => ( `relative cursor-default select-none py-2 pl-10 pr-4 ${ active ? "bg-secondary/50 text-white" : "text-gray-400" }` } value={person} > {({ selected }) => ( <> {person.name} {selected ? ( ) : null} )} ))}
); }; export default BugReportForm;