From 35946dbb2feb7f9d1cbab16fb0602ce0303562e9 Mon Sep 17 00:00:00 2001 From: Wolfboy248 Date: Tue, 29 Oct 2024 10:09:17 +0100 Subject: refactor: upload run dialog, useMessage update, added loader spinner --- frontend/src/components/UploadRunDialog.tsx | 56 +++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 15 deletions(-) (limited to 'frontend/src/components/UploadRunDialog.tsx') diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx index a0d23e7..212a792 100644 --- a/frontend/src/components/UploadRunDialog.tsx +++ b/frontend/src/components/UploadRunDialog.tsx @@ -47,22 +47,36 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, const [loading, setLoading] = React.useState(false); const [dragHightlight, setDragHighlight] = React.useState(false); + const [dragHightlightPartner, setDragHighlightPartner] = React.useState(false); const fileInputRef = React.useRef(null); - - const _handle_file_click = () => { - fileInputRef.current?.click(); + const fileInputRefPartner = React.useRef(null); + + const _handle_file_click = (host: boolean) => { + if (host) { + fileInputRef.current?.click(); + } else { + fileInputRefPartner.current?.click(); + } } - const _handle_drag_over = (e: React.DragEvent) => { + const _handle_drag_over = (e: React.DragEvent, host: boolean) => { e.preventDefault(); e.stopPropagation(); - setDragHighlight(true); + if (host) { + setDragHighlight(true); + } else { + setDragHighlightPartner(true); + } } - const _handle_drag_leave = (e: React.DragEvent) => { + const _handle_drag_leave = (e: React.DragEvent, host: boolean) => { e.preventDefault(); e.stopPropagation(); - setDragHighlight(false); + if (host) { + setDragHighlight(false); + } else { + setDragHighlightPartner(false); + } } const _handle_drop = (e: React.DragEvent, host: boolean) => { @@ -70,8 +84,6 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, e.stopPropagation(); setDragHighlight(true); - console.log(e.dataTransfer.files); - _handle_file_change(e.dataTransfer.files, host); } @@ -102,7 +114,6 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, }; const _handle_file_change = async (files: FileList | null, host: boolean) => { - console.log(files); if (files) { if (host) { setUploadRunContent({ @@ -155,13 +166,16 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, const [ success, response ] = await API.post_record(token, uploadRunContent); await message("Upload Record", response); - console.log("weweew") onClose(success); + navigate("/profile"); } }; React.useEffect(() => { if (open) { + + setDragHighlightPartner(false); + setDragHighlight(false); _handle_game_select("1", "Portal 2 - Singleplayer"); // a different approach?. } }, [open]); @@ -208,14 +222,14 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, Host Demo -
{_handle_drag_over(e)}} onDrop={(e) => {_handle_drop(e, true)}} onDragLeave={(e) => {_handle_drag_leave(e)}} className={`upload-run-drag-area ${dragHightlight ? "upload-run-drag-area-highlight" : ""} ${uploadRunContent.host_demo ? "upload-run-drag-area-hidden" : ""}`}> +
{_handle_file_click(true)}} onDragOver={(e) => {_handle_drag_over(e, true)}} onDrop={(e) => {_handle_drop(e, true)}} onDragLeave={(e) => {_handle_drag_leave(e, true)}} className={`upload-run-drag-area ${dragHightlight ? "upload-run-drag-area-highlight" : ""} ${uploadRunContent.host_demo ? "upload-run-drag-area-hidden" : ""}`}> _handle_file_change(e.target.files, true)} /> {!uploadRunContent.host_demo ?
Drag and drop
- Or click here - + Or click here
+
: null} @@ -227,7 +241,19 @@ const UploadRunDialog: React.FC = ({ token, open, onClose, ( <> Partner Demo - _handle_file_change(e.target.files, false)} /> +
{_handle_file_click(false)}} onDragOver={(e) => {_handle_drag_over(e, false)}} onDrop={(e) => {_handle_drop(e, false)}} onDragLeave={(e) => {_handle_drag_leave(e, false)}} className={`upload-run-drag-area ${dragHightlightPartner ? "upload-run-drag-area-highlight-partner" : ""} ${uploadRunContent.partner_demo ? "upload-run-drag-area-hidden" : ""}`}> + _handle_file_change(e.target.files, false)} /> {!uploadRunContent.partner_demo ? +
+ Drag and drop +
+ Or click here
+ +
+
+ : null} + + {uploadRunContent.partner_demo?.name} +
) } -- cgit v1.2.3