diff options
| author | Wolfboy248 <georgejvindkarlsen@gmail.com> | 2024-11-01 17:56:35 +0100 |
|---|---|---|
| committer | Wolfboy248 <georgejvindkarlsen@gmail.com> | 2024-11-01 17:56:35 +0100 |
| commit | a6a5735e4869ac9835a0b2a1f7740448ecd63449 (patch) | |
| tree | 7f58458483f74d938adf9cae7d2b98e169401261 | |
| parent | frontend: convert all native confirm and alerts to custom hooks (diff) | |
| download | lphub-a6a5735e4869ac9835a0b2a1f7740448ecd63449.tar.gz lphub-a6a5735e4869ac9835a0b2a1f7740448ecd63449.tar.bz2 lphub-a6a5735e4869ac9835a0b2a1f7740448ecd63449.zip | |
frontend: uploadrundialog.tsx
| -rw-r--r-- | frontend/src/api/Api.tsx | 2 | ||||
| -rw-r--r-- | frontend/src/components/Login.tsx | 3 | ||||
| -rw-r--r-- | frontend/src/components/UploadRunDialog.tsx | 18 | ||||
| -rw-r--r-- | frontend/src/css/UploadRunDialog.css | 14 | ||||
| -rw-r--r-- | frontend/src/pages/Maplist.tsx | 5 |
5 files changed, 26 insertions, 16 deletions
diff --git a/frontend/src/api/Api.tsx b/frontend/src/api/Api.tsx index 053e920..ddc7ac6 100644 --- a/frontend/src/api/Api.tsx +++ b/frontend/src/api/Api.tsx | |||
| @@ -49,7 +49,7 @@ export const API = { | |||
| 49 | delete_map_summary: (token: string, map_id: string, route_id: number) => delete_map_summary(token, map_id, route_id), | 49 | delete_map_summary: (token: string, map_id: string, route_id: number) => delete_map_summary(token, map_id, route_id), |
| 50 | }; | 50 | }; |
| 51 | 51 | ||
| 52 | const BASE_API_URL: string = "/api/v1/" | 52 | const BASE_API_URL: string = "https://lp.portal2.sr/api/v1/" |
| 53 | 53 | ||
| 54 | export function url(path: string): string { | 54 | export function url(path: string): string { |
| 55 | return BASE_API_URL + path; | 55 | return BASE_API_URL + path; |
diff --git a/frontend/src/components/Login.tsx b/frontend/src/components/Login.tsx index 545f724..d33e25e 100644 --- a/frontend/src/components/Login.tsx +++ b/frontend/src/components/Login.tsx | |||
| @@ -17,7 +17,8 @@ const Login: React.FC<LoginProps> = ({ setToken, profile, setProfile }) => { | |||
| 17 | const navigate = useNavigate(); | 17 | const navigate = useNavigate(); |
| 18 | 18 | ||
| 19 | const _login = () => { | 19 | const _login = () => { |
| 20 | window.location.href = "/api/v1/login"; | 20 | setToken("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MzI3Nzg0NTEsIm1vZCI6ZmFsc2UsInN1YiI6Ijc2NTYxMTk5MDg4MjU3MDk4In0.MwYcAy1q463-A2qxLn3Dk4T7ECwta_x4h-CJOTB6VZY"); |
| 21 | // window.location.href = "/api/v1/login"; | ||
| 21 | }; | 22 | }; |
| 22 | 23 | ||
| 23 | const _logout = () => { | 24 | const _logout = () => { |
diff --git a/frontend/src/components/UploadRunDialog.tsx b/frontend/src/components/UploadRunDialog.tsx index 1679ac1..8c201ff 100644 --- a/frontend/src/components/UploadRunDialog.tsx +++ b/frontend/src/components/UploadRunDialog.tsx | |||
| @@ -197,13 +197,13 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, | |||
| 197 | <div id='upload-run-menu'> | 197 | <div id='upload-run-menu'> |
| 198 | <div id='upload-run-menu-add'> | 198 | <div id='upload-run-menu-add'> |
| 199 | <div id='upload-run-route-category'> | 199 | <div id='upload-run-route-category'> |
| 200 | <div style={{ padding: "15px 0px" }} className='upload-run-dropdown-container'> | 200 | <div style={{ padding: "15px 0px" }} className='upload-run-dropdown-container upload-run-item'> |
| 201 | <h3 style={{ margin: "10px 0px" }}>Select Game</h3> | 201 | <h1 style={{ paddingBottom: "14px" }}>Select Game</h1> |
| 202 | <div onClick={() => _handle_dropdowns(1)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}> | 202 | <div onClick={() => _handle_dropdowns(1)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}> |
| 203 | <div className='dropdown-cur'>{selectedGameName}</div> | 203 | <div className='dropdown-cur'>{selectedGameName}</div> |
| 204 | <i style={{ rotate: "-90deg", transform: "translate(-5px, 10px)" }} className="triangle"></i> | 204 | <i style={{ rotate: "-90deg", transform: "translate(-5px, 10px)" }} className="triangle"></i> |
| 205 | </div> | 205 | </div> |
| 206 | <div className={dropdown1Vis ? "upload-run-dropdown" : "upload-run-dropdown hidden"}> | 206 | <div style={{top: "160px"}} className={dropdown1Vis ? "upload-run-dropdown" : "upload-run-dropdown hidden"}> |
| 207 | {games.map((game) => ( | 207 | {games.map((game) => ( |
| 208 | <div onClick={() => { _handle_game_select(game.id.toString(), game.name); _handle_dropdowns(1) }} key={game.id}>{game.name}</div> | 208 | <div onClick={() => { _handle_game_select(game.id.toString(), game.name); _handle_dropdowns(1) }} key={game.id}>{game.name}</div> |
| 209 | ))} | 209 | ))} |
| @@ -213,7 +213,7 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, | |||
| 213 | !loading && | 213 | !loading && |
| 214 | ( | 214 | ( |
| 215 | <> | 215 | <> |
| 216 | <div className='upload-run-map-container' style={{ paddingBottom: "10px" }}> | 216 | <div className='upload-run-map-container upload-run-item' style={{ paddingBottom: "10px" }}> |
| 217 | <div style={{ padding: "15px 0px" }}> | 217 | <div style={{ padding: "15px 0px" }}> |
| 218 | <h3 style={{ margin: "10px 0px" }}>Select Map</h3> | 218 | <h3 style={{ margin: "10px 0px" }}>Select Map</h3> |
| 219 | <div onClick={() => _handle_dropdowns(2)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}> | 219 | <div onClick={() => _handle_dropdowns(2)} style={{ display: "flex", alignItems: "center", cursor: "pointer", justifyContent: "space-between" }}> |
| @@ -221,14 +221,13 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, | |||
| 221 | <i style={{ rotate: "-90deg", transform: "translate(-5px, 10px)" }} className="triangle"></i> | 221 | <i style={{ rotate: "-90deg", transform: "translate(-5px, 10px)" }} className="triangle"></i> |
| 222 | </div> | 222 | </div> |
| 223 | </div> | 223 | </div> |
| 224 | <div> | 224 | <div style={{top: "160px"}} id='dropdown2' className={dropdown2Vis ? "upload-run-dropdown" : "upload-run-dropdown hidden"}> |
| 225 | <div id='dropdown2' className={dropdown2Vis ? "upload-run-dropdown" : "upload-run-dropdown hidden"}> | ||
| 226 | {selectedGameMaps && selectedGameMaps.filter(gameMap => !gameMap.is_disabled).map((gameMap) => ( | 225 | {selectedGameMaps && selectedGameMaps.filter(gameMap => !gameMap.is_disabled).map((gameMap) => ( |
| 227 | <div onClick={() => { setUploadRunContent({ ...uploadRunContent, map_id: gameMap.id }); _set_current_map(gameMap.name); _handle_dropdowns(2); }} key={gameMap.id}>{gameMap.name}</div> | 226 | <div onClick={() => { setUploadRunContent({ ...uploadRunContent, map_id: gameMap.id }); _set_current_map(gameMap.name); _handle_dropdowns(2); }} key={gameMap.id}>{gameMap.name}</div> |
| 228 | ))} | 227 | ))} |
| 229 | </div> | 228 | </div> |
| 230 | </div> | 229 | </div> |
| 231 | <h3 style={{ margin: "10px 0px" }}>Host Demo</h3> | 230 | <h1>Host Demo</h1> |
| 232 | <div onClick={() => { _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" : ""}`}> | 231 | <div onClick={() => { _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" : ""}`}> |
| 233 | <input ref={fileInputRef} type="file" name="host_demo" id="host_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, true)} /> | 232 | <input ref={fileInputRef} type="file" name="host_demo" id="host_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, true)} /> |
| 234 | {!uploadRunContent.host_demo ? | 233 | {!uploadRunContent.host_demo ? |
| @@ -243,11 +242,12 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, | |||
| 243 | 242 | ||
| 244 | <span className="upload-run-demo-name">{uploadRunContent.host_demo?.name}</span> | 243 | <span className="upload-run-demo-name">{uploadRunContent.host_demo?.name}</span> |
| 245 | </div> | 244 | </div> |
| 245 | </div><br/> | ||
| 246 | { | 246 | { |
| 247 | games[selectedGameID].is_coop && | 247 | games[selectedGameID].is_coop && |
| 248 | ( | 248 | ( |
| 249 | <> | 249 | <> |
| 250 | <h3 style={{ margin: "10px 0px" }}>Partner Demo</h3> | 250 | <h1>Partner Demo</h1> |
| 251 | <div onClick={() => { _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" : ""}`}> | 251 | <div onClick={() => { _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" : ""}`}> |
| 252 | <input ref={fileInputRefPartner} type="file" name="partner_demo" id="partner_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, false)} /> {!uploadRunContent.partner_demo ? | 252 | <input ref={fileInputRefPartner} type="file" name="partner_demo" id="partner_demo" accept=".dem" onChange={(e) => _handle_file_change(e.target.files, false)} /> {!uploadRunContent.partner_demo ? |
| 253 | <div> | 253 | <div> |
| @@ -261,12 +261,14 @@ const UploadRunDialog: React.FC<UploadRunDialogProps> = ({ token, open, onClose, | |||
| 261 | 261 | ||
| 262 | <span className="upload-run-demo-name">{uploadRunContent.partner_demo?.name}</span> | 262 | <span className="upload-run-demo-name">{uploadRunContent.partner_demo?.name}</span> |
| 263 | </div> | 263 | </div> |
| 264 | </div> | ||
| 264 | </> | 265 | </> |
| 265 | ) | 266 | ) |
| 266 | } | 267 | } |
| 267 | <div className='search-container'> | 268 | <div className='search-container'> |
| 268 | 269 | ||
| 269 | </div> | 270 | </div> |
| 271 | <br/> | ||
| 270 | <div className='upload-run-buttons-container'> | 272 | <div className='upload-run-buttons-container'> |
| 271 | <button onClick={_upload_run}>Submit</button> | 273 | <button onClick={_upload_run}>Submit</button> |
| 272 | <button onClick={() => onClose(false)}>Cancel</button> | 274 | <button onClick={() => onClose(false)}>Cancel</button> |
diff --git a/frontend/src/css/UploadRunDialog.css b/frontend/src/css/UploadRunDialog.css index f6e910b..78fca5e 100644 --- a/frontend/src/css/UploadRunDialog.css +++ b/frontend/src/css/UploadRunDialog.css | |||
| @@ -10,7 +10,7 @@ div#upload-run{ | |||
| 10 | 10 | ||
| 11 | #upload-run-menu{ | 11 | #upload-run-menu{ |
| 12 | position: absolute; | 12 | position: absolute; |
| 13 | left: calc(50% + 160px); top: 130px; | 13 | left: calc(50%); top: 130px; |
| 14 | transform: translateX(-50%); | 14 | transform: translateX(-50%); |
| 15 | background-color: #2b2e46; | 15 | background-color: #2b2e46; |
| 16 | z-index: 3; color: white; | 16 | z-index: 3; color: white; |
| @@ -23,14 +23,19 @@ div#upload-run{ | |||
| 23 | outline: 8px solid #2b2e46; | 23 | outline: 8px solid #2b2e46; |
| 24 | border-radius: 20px; | 24 | border-radius: 20px; |
| 25 | font-size: 40px; | 25 | font-size: 40px; |
| 26 | width: 400px; | 26 | text-wrap: nowrap; |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | #upload-run-menu-add>div, | 29 | #upload-run-menu-add>div, |
| 30 | #upload-run-menu-edit>div{ | 30 | #upload-run-menu-edit>div{ |
| 31 | display: grid; | 31 | display: flex; |
| 32 | font-size: 20px; | 32 | font-size: 20px; |
| 33 | padding: 0px 15px; | 33 | padding: 0px 15px; |
| 34 | gap: 2px; | ||
| 35 | } | ||
| 36 | |||
| 37 | #upload-run-menu-add>div .upload-run-item { | ||
| 38 | margin: 0px 20px; | ||
| 34 | } | 39 | } |
| 35 | 40 | ||
| 36 | #upload-run-block{ | 41 | #upload-run-block{ |
| @@ -59,7 +64,7 @@ div#upload-run{ | |||
| 59 | animation: dropdown-in 0.2s ease; | 64 | animation: dropdown-in 0.2s ease; |
| 60 | max-height: 300px; | 65 | max-height: 300px; |
| 61 | overflow-y: scroll; | 66 | overflow-y: scroll; |
| 62 | width: calc(100% - 30px); | 67 | width: 400px; |
| 63 | } | 68 | } |
| 64 | 69 | ||
| 65 | .upload-run-dropdown div { | 70 | .upload-run-dropdown div { |
| @@ -111,7 +116,6 @@ button:hover { | |||
| 111 | 116 | ||
| 112 | .upload-run-map-container { | 117 | .upload-run-map-container { |
| 113 | display: flex; | 118 | display: flex; |
| 114 | flex-direction: column; | ||
| 115 | } | 119 | } |
| 116 | 120 | ||
| 117 | .upload-run-buttons-container { | 121 | .upload-run-buttons-container { |
diff --git a/frontend/src/pages/Maplist.tsx b/frontend/src/pages/Maplist.tsx index a76c1f5..4c1c172 100644 --- a/frontend/src/pages/Maplist.tsx +++ b/frontend/src/pages/Maplist.tsx | |||
| @@ -53,7 +53,10 @@ const Maplist: React.FC = () => { | |||
| 53 | // location query params | 53 | // location query params |
| 54 | const queryParams = new URLSearchParams(location.search); | 54 | const queryParams = new URLSearchParams(location.search); |
| 55 | if (queryParams.get("chapter")) { | 55 | if (queryParams.get("chapter")) { |
| 56 | const cat = parseFloat(queryParams.get("chapter") || ""); | 56 | let cat = parseFloat(queryParams.get("chapter") || ""); |
| 57 | if (gameId == 2) { | ||
| 58 | cat += 10; | ||
| 59 | } | ||
| 57 | _fetch_chapters(cat.toString()); | 60 | _fetch_chapters(cat.toString()); |
| 58 | } | 61 | } |
| 59 | 62 | ||