From 2f335cf57ac0964faea086d2247563efb32ce831 Mon Sep 17 00:00:00 2001 From: Regalijan <r@regalijan.com> Date: Tue, 26 Mar 2024 02:16:47 -0400 Subject: [PATCH] Make XHR requests async --- app/routes/report.tsx | 62 ++++++++++++++++++++++++------------------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/app/routes/report.tsx b/app/routes/report.tsx index a75fe06..6a19a88 100644 --- a/app/routes/report.tsx +++ b/app/routes/report.tsx @@ -33,6 +33,10 @@ export function meta() { { title: "Report an Exploiter - Car Crushers", }, + { + name: "description", + content: "Use this page to report a cheater", + }, ]; } @@ -170,33 +174,37 @@ export default function () { }; for (let i = 0; i < upload_urls.length; i++) { - const xhr = new XMLHttpRequest(); - - xhr.open("PUT", upload_urls[i], false); - xhr.setRequestHeader( - "content-type", - (files[i].name.split(".").at(-1) as string).toLowerCase() === "mov" - ? "video/mp4" - : files[i].type || - fileTypes[files[i].name.split(".").at(-1) as string], - ); - - xhr.upload.addEventListener("progress", increaseProgress); - xhr.upload.onabort = () => { - shouldRecall = true; - setUploading(false); - setFileProgress(0); - }; - xhr.upload.onerror = () => { - shouldRecall = true; - setUploading(false); - setFileProgress(0); - }; - xhr.upload.onloadend = () => { - if (i === upload_urls.length - 1) setUploading(false); - }; - - xhr.send(files[i]); + await new Promise((resolve) => { + const xhr = new XMLHttpRequest(); + + xhr.open("PUT", upload_urls[i], true); + xhr.setRequestHeader( + "content-type", + (files[i].name.split(".").at(-1) as string).toLowerCase() === "mov" + ? "video/mp4" + : files[i].type || + fileTypes[files[i].name.split(".").at(-1) as string], + ); + + xhr.upload.addEventListener("progress", increaseProgress); + xhr.upload.onabort = () => { + shouldRecall = true; + setUploading(false); + setFileProgress(0); + }; + xhr.upload.onerror = () => { + shouldRecall = true; + setUploading(false); + setFileProgress(0); + }; + xhr.upload.onloadend = () => { + if (i === upload_urls.length - 1) setUploading(false); + + resolve(null); + }; + + xhr.send(files[i]); + }); } if (shouldRecall) {