aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components/UploadRunDialog.tsx
diff options
context:
space:
mode:
authorWolfboy248 <105884620+Wolfboy248@users.noreply.github.com>2024-10-20 16:51:43 +0200
committerWolfboy248 <105884620+Wolfboy248@users.noreply.github.com>2024-10-20 16:51:43 +0200
commit1c51ea2e373dcdd458d8cdc1d3b2225c316f346d (patch)
treee8a667b3260ae6e79582e89070967b90552c6e73 /frontend/src/components/UploadRunDialog.tsx
parentrankings: handle ties like iverb (diff)
downloadlphub-1c51ea2e373dcdd458d8cdc1d3b2225c316f346d.tar.gz
lphub-1c51ea2e373dcdd458d8cdc1d3b2225c316f346d.tar.bz2
lphub-1c51ea2e373dcdd458d8cdc1d3b2225c316f346d.zip
refactor: touch ups
Diffstat (limited to 'frontend/src/components/UploadRunDialog.tsx')
-rw-r--r--frontend/src/components/UploadRunDialog.tsx32
1 files changed, 22 insertions, 10 deletions
diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx
index b26bbe6..f3258e8 100644
--- a/frontend/src/components/UploadRunDialog.tsx
+++ b/frontend/src/components/UploadRunDialog.tsx
@@ -7,6 +7,8 @@ import { Game } from '../types/Game';
7import { Map } from '../types/Map'; 7import { Map } from '../types/Map';
8import { API } from '../api/Api'; 8import { API } from '../api/Api';
9import { useNavigate } from 'react-router-dom'; 9import { useNavigate } from 'react-router-dom';
10import useMessage from '../hooks/UseMessage';
11import useConfirm from '../hooks/UseConfirm';
10 12
11interface UploadRunDialogProps { 13interface UploadRunDialogProps {
12 token?: string; 14 token?: string;
@@ -16,6 +18,8 @@ interface UploadRunDialogProps {
16} 18}
17 19
18const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => { 20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => {
21 const { message, MessageDialogComponent } = useMessage();
22 const { confirm, ConfirmDialogComponent } = useConfirm("Upload demo?", "Are you sure you want to upload this demo?");
19 23
20 const navigate = useNavigate(); 24 const navigate = useNavigate();
21 25
@@ -89,18 +93,18 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
89 if (token) { 93 if (token) {
90 if (games[selectedGameID].is_coop) { 94 if (games[selectedGameID].is_coop) {
91 if (uploadRunContent.host_demo === null) { 95 if (uploadRunContent.host_demo === null) {
92 alert("You must select a host demo to upload.") 96 message("Error", "You must select a host demo to upload.")
93 return 97 return
94 } else if (uploadRunContent.partner_demo === null) { 98 } else if (uploadRunContent.partner_demo === null) {
95 alert("You must select a partner demo to upload.") 99 message("Error", "You must select a partner demo to upload.")
96 return 100 return
97 } else if (uploadRunContent.partner_id === undefined) { 101 } else if (uploadRunContent.partner_id === undefined) {
98 alert("You must specify your partner.") 102 message("Error", "You must specify your partner.")
99 return 103 return
100 } 104 }
101 } else { 105 } else {
102 if (uploadRunContent.host_demo === null) { 106 if (uploadRunContent.host_demo === null) {
103 alert("You must select a demo to upload.") 107 message("Error", "You must select a demo to upload.")
104 return 108 return
105 } 109 }
106 } 110 }
@@ -112,17 +116,22 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
112 }) 116 })
113 117
114 if (!scoreboard) { 118 if (!scoreboard) {
115 alert("Error while processing demo: Unable to get scoreboard result. Is this not a CM demo?") 119 message("Error", "Error while processing demo: Unable to get scoreboard result. Is this not a CM demo?")
116 return 120 return
117 } 121 }
118 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {}; 122 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {};
119 console.log(`Portal count: ${portalScore}. Ticks: ${timeScore}.`); 123 console.log(`Portal count: ${portalScore}. Ticks: ${timeScore}.`);
120 if (window.confirm("Are you sure you want to submit this run to LPHUB?")) { 124
121 const message = await API.post_record(token, uploadRunContent); 125 const userConfirmed = await confirm();
122 alert(message); 126
123 navigate(0); 127 if (!userConfirmed) {
124 onClose(); 128 return;
125 } 129 }
130
131 const response = await API.post_record(token, uploadRunContent);
132 message("Message", response);
133 // navigate(0);
134 onClose();
126 } 135 }
127 }; 136 };
128 137
@@ -136,6 +145,9 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
136 return ( 145 return (
137 <> 146 <>
138 <div id="upload-run-block" /> 147 <div id="upload-run-block" />
148 {MessageDialogComponent}
149 {ConfirmDialogComponent}
150
139 <div id='upload-run-menu'> 151 <div id='upload-run-menu'>
140 <div id='upload-run-menu-add'> 152 <div id='upload-run-menu-add'>
141 <div id='upload-run-route-category'> 153 <div id='upload-run-route-category'>