diff options
| author | Wolfboy248 <105884620+Wolfboy248@users.noreply.github.com> | 2024-10-20 16:51:43 +0200 |
|---|---|---|
| committer | Wolfboy248 <105884620+Wolfboy248@users.noreply.github.com> | 2024-10-20 16:51:43 +0200 |
| commit | 1c51ea2e373dcdd458d8cdc1d3b2225c316f346d (patch) | |
| tree | e8a667b3260ae6e79582e89070967b90552c6e73 /frontend/src/components/UploadRunDialog.tsx | |
| parent | rankings: handle ties like iverb (diff) | |
| download | lphub-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.tsx | 32 |
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'; | |||
| 7 | import { Map } from '../types/Map'; | 7 | import { Map } from '../types/Map'; |
| 8 | import { API } from '../api/Api'; | 8 | import { API } from '../api/Api'; |
| 9 | import { useNavigate } from 'react-router-dom'; | 9 | import { useNavigate } from 'react-router-dom'; |
| 10 | import useMessage from '../hooks/UseMessage'; | ||
| 11 | import useConfirm from '../hooks/UseConfirm'; | ||
| 10 | 12 | ||
| 11 | interface UploadRunDialogProps { | 13 | interface UploadRunDialogProps { |
| 12 | token?: string; | 14 | token?: string; |
| @@ -16,6 +18,8 @@ interface UploadRunDialogProps { | |||
| 16 | } | 18 | } |
| 17 | 19 | ||
| 18 | const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, games }) => { | 20 | const 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'> |