aboutsummaryrefslogtreecommitdiff
path: root/frontend/src
diff options
context:
space:
mode:
authorNidboj132 <28981031+Nidboj132@users.noreply.github.com>2023-09-22 19:34:25 +0200
committerGitHub <noreply@github.com>2023-09-22 20:34:25 +0300
commit8b9e3776d33451063c2b757813b1de256af9c5ad (patch)
tree967a4e77adc510c9e2a73c0f908ca25b50a7cd09 /frontend/src
parentfeat: completion count (#52) (diff)
downloadlphub-8b9e3776d33451063c2b757813b1de256af9c5ad.tar.gz
lphub-8b9e3776d33451063c2b757813b1de256af9c5ad.tar.bz2
lphub-8b9e3776d33451063c2b757813b1de256af9c5ad.zip
feat: coop leaderboards (#53)
Former-commit-id: ce710d4fc8821850c64777d90405bd4ad717961d
Diffstat (limited to 'frontend/src')
-rw-r--r--frontend/src/components/pages/summary.css34
-rw-r--r--frontend/src/components/pages/summary.js44
2 files changed, 65 insertions, 13 deletions
diff --git a/frontend/src/components/pages/summary.css b/frontend/src/components/pages/summary.css
index 6ac56eb..51f8515 100644
--- a/frontend/src/components/pages/summary.css
+++ b/frontend/src/components/pages/summary.css
@@ -326,21 +326,28 @@ p>span.portal-count{font-weight: bold;font-size: 100px;vertical-align: -15%;}
326 padding: 10px 10px 0 10px; 326 padding: 10px 10px 0 10px;
327 327
328} 328}
329#leaderboard-top>span{
330 display: flex;
331 place-items: flex-end;
332}
333 329
334 330
335#section6>hr{border: 1px solid #2b2e46;margin: 8px 20px 0px 20px;} 331#section6>hr{border: 1px solid #2b2e46;margin: 8px 20px 0px 20px;}
336#leaderboard-top{ 332#leaderboard-top{
337 display: grid; 333 display: grid;
338 grid-template-columns: 7.5% 25% 7.5% 25% 20% 15%;
339 font-size: 20px; 334 font-size: 20px;
340 height: 34px; 335 height: 34px;
341 padding-left: 60px; 336 padding-left: 60px;
342 margin: 0 20px 0 20px; 337 margin: 0 20px 0 20px;
343} 338}
339#leaderboard-top>span{
340
341 display: flex;
342 place-items: flex-end;
343}
344
345#runner{
346 display: grid;
347 grid-template-columns: 50% 50%;
348 align-items: end;
349}
350
344#page-number{ 351#page-number{
345 display: flex; 352 display: flex;
346 width: auto; 353 width: auto;
@@ -374,8 +381,7 @@ text-align: center;
374 font-size: 20px; 381 font-size: 20px;
375 font-family: inherit; 382 font-family: inherit;
376 383
377 384 grid-template-columns: 3% 4.5% 40% 4% 3.5% 15% 15% 15%;
378 grid-template-columns: 3% 4.5% 25% 4% 3.5% 25% 20% 15%;
379 display: grid; 385 display: grid;
380 386
381 border: 0; 387 border: 0;
@@ -391,12 +397,24 @@ text-align: center;
391 place-items: center; 397 place-items: center;
392 height: 44px; 398 height: 44px;
393} 399}
394.leaderboard-record>span>img{ 400
401.leaderboard-record>div>span>img{
395 height: 36px; 402 height: 36px;
396 border-radius: 50px; 403 border-radius: 50px;
397 padding: 0; 404 padding: 0;
398 scale: .95; 405 scale: .95;
399} 406}
407.leaderboard-record>div{
408 display: grid;
409 grid-template-columns: 50% 50%;
410 place-items: left;
411}
412.leaderboard-record>div>span{
413 display: flex;
414 place-items: center;
415 height: 44px;
416}
417
400.leaderboard-record>span>button{ 418.leaderboard-record>span>button{
401 background-color: #0000; 419 background-color: #0000;
402 border: 0; 420 border: 0;
diff --git a/frontend/src/components/pages/summary.js b/frontend/src/components/pages/summary.js
index dde2243..4fc30a8 100644
--- a/frontend/src/components/pages/summary.js
+++ b/frontend/src/components/pages/summary.js
@@ -225,6 +225,19 @@ function TimeAgo(date) {
225 return Math.floor(seconds) + ' seconds ago'; 225 return Math.floor(seconds) + ' seconds ago';
226 }; 226 };
227 227
228function TicksToTime(ticks) {
229
230 let seconds = Math.floor(ticks/60)
231 let minutes = Math.floor(seconds/60)
232 let hours = Math.floor(minutes/60)
233
234 let milliseconds = Math.floor((ticks%60)*1000/60)
235 seconds = seconds % 60;
236 minutes = minutes % 60;
237
238 return `${hours===0?"":hours+":"}${minutes===0?"":hours>0?minutes.toString().padStart(2, '0')+":":(minutes+":")}${minutes>0?seconds.toString().padStart(2, '0'):seconds}.${milliseconds.toString().padStart(3, '0')} (${ticks})`;
239}
240
228if(data!==null){ 241if(data!==null){
229return ( 242return (
230 <> 243 <>
@@ -362,9 +375,20 @@ return (
362 ):( 375 ):(
363 <section id='section6' className='summary2'> 376 <section id='section6' className='summary2'>
364 377
365 <div id='leaderboard-top'> 378 <div id='leaderboard-top'
379 style={lbData.data.map.is_coop?{gridTemplateColumns:"7.5% 40% 7.5% 15% 15% 15%"}:{gridTemplateColumns:"7.5% 30% 10% 20% 17.5% 15%"}}
380 >
366 <span>Place</span> 381 <span>Place</span>
367 <span>Runner</span> 382
383 {lbData.data.map.is_coop?(
384 <div id='runner'>
385 <span>Host</span>
386 <span>Partner</span>
387 </div>
388 ):(
389 <span>Runner</span>
390 )}
391
368 <span>Portals</span> 392 <span>Portals</span>
369 <span>Time</span> 393 <span>Time</span>
370 <span>Date</span> 394 <span>Date</span>
@@ -382,13 +406,23 @@ return (
382 <hr/> 406 <hr/>
383 <div id='leaderboard-records'> 407 <div id='leaderboard-records'>
384 {lbData.data.records.map((r, index) => ( 408 {lbData.data.records.map((r, index) => (
385 <span className='leaderboard-record' key={index} > 409 <span className='leaderboard-record' key={index}
410 style={lbData.data.map.is_coop?{gridTemplateColumns:"3% 4.5% 40% 4% 3.5% 15% 15% 14.5%"}:{gridTemplateColumns:"3% 4.5% 30% 4% 6% 20% 17% 15%"}}
411 >
386 <span>{r.placement}</span> 412 <span>{r.placement}</span>
387 <span> </span> 413 <span> </span>
388 <span><img src={r.user.avatar_link} alt='' /> &nbsp; {r.user.user_name}</span> 414 {lbData.data.map.is_coop?(
415 <div>
416 <span><img src={r.host.avatar_link} alt='' /> &nbsp; {r.host.user_name}</span>
417 <span><img src={r.partner.avatar_link} alt='' /> &nbsp; {r.partner.user_name}</span>
418 </div>
419 ):(
420 <div><span><img src={r.user.avatar_link} alt='' /> &nbsp; {r.user.user_name}</span></div>
421 )}
422
389 <span>{r.score_count}</span> 423 <span>{r.score_count}</span>
390 <span> </span> 424 <span> </span>
391 <span>{r.score_time}</span> 425 <span>{TicksToTime(r.score_time)}</span>
392 <span className='hover-popup' popup-text={r.record_date.replace("T",' ').split(".")[0]}>{ TimeAgo(new Date(r.record_date.replace("T"," ").replace("Z",""))) }</span> 426 <span className='hover-popup' popup-text={r.record_date.replace("T",' ').split(".")[0]}>{ TimeAgo(new Date(r.record_date.replace("T"," ").replace("Z",""))) }</span>
393 <span> 427 <span>
394 <button onClick={()=>{window.alert(r.demo_id)}}><img src={img13} alt="demo_id" /></button> 428 <button onClick={()=>{window.alert(r.demo_id)}}><img src={img13} alt="demo_id" /></button>