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 12:23:35 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2024-10-22 12:23:35 +0300
commit3ee18a8cb3a2893f552275c35b0724daf4b8ab69 (patch)
treed9003e0cc2c0a1dcbcda5b6eec247776a8e2f340 /frontend/src/components/UploadRunDialog.tsx
parentbackend: importance of || and && (diff)
downloadlphub-3ee18a8cb3a2893f552275c35b0724daf4b8ab69.tar.gz
lphub-3ee18a8cb3a2893f552275c35b0724daf4b8ab69.tar.bz2
lphub-3ee18a8cb3a2893f552275c35b0724daf4b8ab69.zip
frontend: await message
Diffstat (limited to 'frontend/src/components/UploadRunDialog.tsx')
-rw-r--r--frontend/src/components/UploadRunDialog.tsx22
1 files changed, 8 insertions, 14 deletions
diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx
index 0476d6f..a1bebd6 100644
--- a/frontend/src/components/UploadRunDialog.tsx
+++ b/frontend/src/components/UploadRunDialog.tsx
@@ -19,12 +19,9 @@ interface UploadRunDialogProps {
19 19
20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => { 20const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => {
21 21
22 const [confirmMessage, setConfirmMessage] = React.useState<string>("Are you sure you want to upload this demo?");
23
24 const { message, MessageDialogComponent } = useMessage(); 22 const { message, MessageDialogComponent } = useMessage();
25 const { confirm, ConfirmDialogComponent } = useConfirm(); 23 const { confirm, ConfirmDialogComponent } = useConfirm();
26 24
27
28 const navigate = useNavigate(); 25 const navigate = useNavigate();
29 26
30 const [uploadRunContent, setUploadRunContent] = React.useState<UploadRunContent>({ 27 const [uploadRunContent, setUploadRunContent] = React.useState<UploadRunContent>({
@@ -95,42 +92,39 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose,
95 if (token) { 92 if (token) {
96 if (games[selectedGameID].is_coop) { 93 if (games[selectedGameID].is_coop) {
97 if (uploadRunContent.host_demo === null) { 94 if (uploadRunContent.host_demo === null) {
98 message("Error", "You must select a host demo to upload.") 95 await message("Error", "You must select a host demo to upload.")
99 return 96 return
100 } else if (uploadRunContent.partner_demo === null) { 97 } else if (uploadRunContent.partner_demo === null) {
101 message("Error", "You must select a partner demo to upload.") 98 await message("Error", "You must select a partner demo to upload.")
102 return 99 return
103 } 100 }
104 } else { 101 } else {
105 if (uploadRunContent.host_demo === null) { 102 if (uploadRunContent.host_demo === null) {
106 message("Error", "You must select a demo to upload.") 103 await message("Error", "You must select a demo to upload.")
107 return 104 return
108 } 105 }
109 } 106 }
110 const demo = SourceDemoParser.default() 107 const demo = SourceDemoParser.default()
111 .setOptions({ packets: true, header: true }) 108 .setOptions({ packets: true, header: true })
112 .parse(await uploadRunContent.host_demo.arrayBuffer()); 109 .parse(await uploadRunContent.host_demo.arrayBuffer());
113 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>((message) => { 110 const scoreboard = demo.findPacket<NetMessages.SvcUserMessage>((msg) => {
114 return message instanceof NetMessages.SvcUserMessage && message.userMessage instanceof ScoreboardTempUpdate; 111 return msg instanceof NetMessages.SvcUserMessage && msg.userMessage instanceof ScoreboardTempUpdate;
115 }) 112 })
116 113
117 if (!scoreboard) { 114 if (!scoreboard) {
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.") 115 await 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.")
119 return 116 return
120 } 117 }
121 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {}; 118 const { portalScore, timeScore } = scoreboard.userMessage?.as<ScoreboardTempUpdate>() ?? {};
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?`)
125 119
126 const userConfirmed = await confirm("Upload demo?", confirmMessage); 120 const userConfirmed = await confirm("Upload Record", `Map Name: ${demo.mapName}\nPortal Count: ${portalScore}\nTicks: ${timeScore}\n\nAre you sure you want to upload this demo?`);
127 121
128 if (!userConfirmed) { 122 if (!userConfirmed) {
129 return; 123 return;
130 } 124 }
131 125
132 const response = await API.post_record(token, uploadRunContent); 126 const response = await API.post_record(token, uploadRunContent);
133 message("Message", response); 127 await message("Upload Record", response);
134 // navigate(0); 128 // navigate(0);
135 onClose(); 129 onClose();
136 } 130 }