aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/components/UploadRunDialog.tsx
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-22 00:56:51 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-22 00:56:51 +0300
commitc619cda228b116b3c7be43e2654f7297896f9199 (patch)
tree23ddddf968d44f841aabc55f47a9e3f6802edb22 /frontend/src/components/UploadRunDialog.tsx
parentbackend: no need for partner_id for record submission (diff)
downloadlphub-c619cda228b116b3c7be43e2654f7297896f9199.tar.gz
lphub-c619cda228b116b3c7be43e2654f7297896f9199.tar.bz2
lphub-c619cda228b116b3c7be43e2654f7297896f9199.zip
frontend: try smth
Diffstat (limited to 'frontend/src/components/UploadRunDialog.tsx')
-rw-r--r--frontend/src/components/UploadRunDialog.tsx24
1 files changed, 10 insertions, 14 deletions
diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx
index f3258e8..a92a5fb 100644
--- a/frontend/src/components/UploadRunDialog.tsx
+++ b/frontend/src/components/UploadRunDialog.tsx
@@ -18,8 +18,12 @@ interface UploadRunDialogProps {
18} 18}
19 19
20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => { 20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => {
21
22 const [confirmMessage, setConfirmMessage] = React.useState<string>("Are you sure you want to upload this demo?");
23
21 const { message, MessageDialogComponent } = useMessage(); 24 const { message, MessageDialogComponent } = useMessage();
22 const { confirm, ConfirmDialogComponent } = useConfirm("Upload demo?", "Are you sure you want to upload this demo?"); 25 const { confirm, ConfirmDialogComponent } = useConfirm("Upload demo?", confirmMessage);
26
23 27
24 const navigate = useNavigate(); 28 const navigate = useNavigate();
25 29
@@ -27,7 +31,6 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
27 map_id: 0, 31 map_id: 0,
28 host_demo: null, 32 host_demo: null,
29 partner_demo: null, 33 partner_demo: null,
30 partner_id: undefined,
31 }); 34 });
32 35
33 const [currentMap, setCurrentMap] = React.useState<string>(""); 36 const [currentMap, setCurrentMap] = React.useState<string>("");
@@ -65,7 +68,6 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
65 map_id: gameMaps[0].id, 68 map_id: gameMaps[0].id,
66 host_demo: null, 69 host_demo: null,
67 partner_demo: null, 70 partner_demo: null,
68 partner_id: undefined,
69 }); 71 });
70 _set_current_map(gameMaps[0].name); 72 _set_current_map(gameMaps[0].name);
71 setSelectedGameID(parseInt(game_id) - 1); 73 setSelectedGameID(parseInt(game_id) - 1);
@@ -98,9 +100,6 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
98 } else if (uploadRunContent.partner_demo === null) { 100 } else if (uploadRunContent.partner_demo === null) {
99 message("Error", "You must select a partner demo to upload.") 101 message("Error", "You must select a partner demo to upload.")
100 return 102 return
101 } else if (uploadRunContent.partner_id === undefined) {
102 message("Error", "You must specify your partner.")
103 return
104 } 103 }
105 } else { 104 } else {
106 if (uploadRunContent.host_demo === null) { 105 if (uploadRunContent.host_demo === null) {
@@ -109,18 +108,20 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
109 } 108 }
110 } 109 }
111 const demo = SourceDemoParser.default() 110 const demo = SourceDemoParser.default()
112 .setOptions({ packets: true }) 111 .setOptions({ packets: true, header: true })
113 .parse(await uploadRunContent.host_demo.arrayBuffer()); 112 .parse(await uploadRunContent.host_demo.arrayBuffer());
114 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>((message) => { 113 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>((message) => {
115 return message instanceof NetMessages.SvcUserMessage && message.userMessage instanceof ScoreboardTempUpdate; 114 return message instanceof NetMessages.SvcUserMessage && message.userMessage instanceof ScoreboardTempUpdate;
116 }) 115 })
117 116
118 if (!scoreboard) { 117 if (!scoreboard) {
119 message("Error", "Error while processing demo: Unable to get scoreboard result. Is this not a CM demo?") 118 message("Error", "Error while processing demo: Unable to get scoreboard result. Either there is a demo that is corrupt or haven't been recorded in challenge mode.")
120 return 119 return
121 } 120 }
122 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {}; 121 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {};
123 console.log(`Portal count: ${portalScore}. Ticks: ${timeScore}.`); 122 console.log(`Map Name: ${demo.mapName}. Portal count: ${portalScore}. Ticks: ${timeScore}.`);
123
124 setConfirmMessage(`Map Name: ${demo.mapName}\nPortal count: ${portalScore}\nTicks: ${timeScore}\n\nAre you sure you want to upload this demo?`)
124 125
125 const userConfirmed = await confirm(); 126 const userConfirmed = await confirm();
126 127
@@ -190,11 +191,6 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
190 <> 191 <>
191 <span>Partner Demo</span> 192 <span>Partner Demo</span>
192 <input type="file" name="partner_demo" id="partner_demo" accept=".dem" onChange={(e) => _handle_file_change(e, false)} /> 193 <input type="file" name="partner_demo" id="partner_demo" accept=".dem" onChange={(e) => _handle_file_change(e, false)} />
193 <span>Partner ID</span>
194 <input type="text" name="partner_id" id="partner_id" onChange={(e) => setUploadRunContent({
195 ...uploadRunContent,
196 partner_id: e.target.value,
197 })} />
198 </> 194 </>
199 ) 195 )
200 } 196 }