Create submit function

This commit is contained in:
regalijan 2023-10-19 16:49:35 -04:00
parent c97029e510
commit 387f78be7d
Signed by: regalijan
GPG Key ID: 5D4196DA269EF520

View File

@ -10,6 +10,7 @@ import {
ModalOverlay,
Select,
Text,
useToast,
} from "@chakra-ui/react";
export default function (props: { isOpen: boolean; onClose: () => void }) {
@ -22,7 +23,51 @@ export default function (props: { isOpen: boolean; onClose: () => void }) {
props.onClose();
}
async function submit() {}
async function submit() {
const form = new FormData();
const { files } = document.getElementById("evidence") as HTMLInputElement;
const punishment = (
document.getElementById("punishment") as unknown as HTMLSelectElement
).item(0)?.value as string;
const { value: user } = document.getElementById("user") as HTMLInputElement;
form.append("user", user);
form.append("punishment", punishment);
if (files) {
for (let i = 0; i < files.length; i++)
form.append(`file${i}`, files[i], files[i].name);
}
const postReq = await fetch("/api/infractions/new", {
body: form,
method: "POST",
});
if (postReq.ok) {
useToast()({
description: "Infraction created",
duration: 5000,
isClosable: true,
status: "success",
title: "Success",
});
props.onClose();
return;
}
useToast()({
description: `Failed to create infraction (${
((await postReq.json()) as { error: string }).error
})`,
duration: 5000,
isClosable: true,
status: "error",
title: "Error",
});
}
return (
<Modal isCentered isOpen={props.isOpen} onClose={props.onClose}>