@@ -412,7 +412,9 @@ const TemplateUsagePanel: FC<TemplateUsagePanelProps> = ({
412
412
...panelProps
413
413
} ) => {
414
414
const theme = useTheme ( ) ;
415
- const validUsage = data ?. filter ( ( u ) => u . seconds > 0 ) ;
415
+ const validUsage = data
416
+ ?. filter ( ( u ) => u . seconds > 0 )
417
+ . sort ( ( a , b ) => b . seconds - a . seconds ) ;
416
418
const totalInSeconds =
417
419
validUsage ?. reduce ( ( total , usage ) => total + usage . seconds , 0 ) ?? 1 ;
418
420
const usageColors = chroma
@@ -438,86 +440,82 @@ const TemplateUsagePanel: FC<TemplateUsagePanelProps> = ({
438
440
gap : 24 ,
439
441
} }
440
442
>
441
- { validUsage
442
- . sort ( ( a , b ) => b . seconds - a . seconds )
443
- . map ( ( usage , i ) => {
444
- const percentage = ( usage . seconds / totalInSeconds ) * 100 ;
445
- return (
446
- < div
447
- key = { usage . slug }
448
- css = { { display : "flex" , gap : 24 , alignItems : "center" } }
449
- >
443
+ { validUsage . map ( ( usage , i ) => {
444
+ const percentage = ( usage . seconds / totalInSeconds ) * 100 ;
445
+ return (
446
+ < div
447
+ key = { usage . slug }
448
+ css = { { display : "flex" , gap : 24 , alignItems : "center" } }
449
+ >
450
+ < div css = { { display : "flex" , alignItems : "center" , gap : 8 } } >
450
451
< div
451
- css = { { display : "flex" , alignItems : "center" , gap : 8 } }
452
- >
453
- < div
454
- css = { {
455
- width : 20 ,
456
- height : 20 ,
457
- display : "flex" ,
458
- alignItems : "center" ,
459
- justifyContent : "center" ,
460
- } }
461
- >
462
- < img
463
- src = { usage . icon }
464
- alt = ""
465
- style = { {
466
- objectFit : "contain" ,
467
- width : "100%" ,
468
- height : "100%" ,
469
- } }
470
- />
471
- </ div >
472
- < div css = { { fontSize : 13 , fontWeight : 500 , width : 200 } } >
473
- { usage . display_name }
474
- </ div >
475
- </ div >
476
- < Tooltip
477
- title = { `${ Math . floor ( percentage ) } %` }
478
- placement = "top"
479
- arrow
452
+ css = { {
453
+ width : 20 ,
454
+ height : 20 ,
455
+ display : "flex" ,
456
+ alignItems : "center" ,
457
+ justifyContent : "center" ,
458
+ } }
480
459
>
481
- < LinearProgress
482
- value = { percentage }
483
- variant = "determinate"
484
- css = { {
460
+ < img
461
+ src = { usage . icon }
462
+ alt = ""
463
+ style = { {
464
+ objectFit : "contain" ,
485
465
width : "100%" ,
486
- height : 8 ,
487
- backgroundColor : theme . palette . divider ,
488
- "& .MuiLinearProgress-bar" : {
489
- backgroundColor : usageColors [ i ] ,
490
- borderRadius : 999 ,
491
- } ,
466
+ height : "100%" ,
492
467
} }
493
468
/>
494
- </ Tooltip >
495
- < Stack
496
- spacing = { 0 }
469
+ </ div >
470
+ < div css = { { fontSize : 13 , fontWeight : 500 , width : 200 } } >
471
+ { usage . display_name }
472
+ </ div >
473
+ </ div >
474
+ < Tooltip
475
+ title = { `${ Math . floor ( percentage ) } %` }
476
+ placement = "top"
477
+ arrow
478
+ >
479
+ < LinearProgress
480
+ value = { percentage }
481
+ variant = "determinate"
497
482
css = { {
498
- fontSize : 13 ,
499
- color : theme . palette . text . secondary ,
500
- width : 120 ,
501
- flexShrink : 0 ,
502
- lineHeight : "1.5" ,
483
+ width : "100%" ,
484
+ height : 8 ,
485
+ backgroundColor : theme . palette . divider ,
486
+ "& .MuiLinearProgress-bar" : {
487
+ backgroundColor : usageColors [ i ] ,
488
+ borderRadius : 999 ,
489
+ } ,
503
490
} }
504
- >
505
- { formatTime ( usage . seconds ) }
506
- { usage . times_used > 0 && (
507
- < span
508
- css = { {
509
- fontSize : 12 ,
510
- color : theme . palette . text . disabled ,
511
- } }
512
- >
513
- Opened { usage . times_used . toLocaleString ( ) } { " " }
514
- { usage . times_used === 1 ? "time" : "times" }
515
- </ span >
516
- ) }
517
- </ Stack >
518
- </ div >
519
- ) ;
520
- } ) }
491
+ />
492
+ </ Tooltip >
493
+ < Stack
494
+ spacing = { 0 }
495
+ css = { {
496
+ fontSize : 13 ,
497
+ color : theme . palette . text . secondary ,
498
+ width : 120 ,
499
+ flexShrink : 0 ,
500
+ lineHeight : "1.5" ,
501
+ } }
502
+ >
503
+ { formatTime ( usage . seconds ) }
504
+ { usage . times_used > 0 && (
505
+ < span
506
+ css = { {
507
+ fontSize : 12 ,
508
+ color : theme . palette . text . disabled ,
509
+ } }
510
+ >
511
+ Opened { usage . times_used . toLocaleString ( ) } { " " }
512
+ { usage . times_used === 1 ? "time" : "times" }
513
+ </ span >
514
+ ) }
515
+ </ Stack >
516
+ </ div >
517
+ ) ;
518
+ } ) }
521
519
</ div >
522
520
) }
523
521
</ PanelContent >
0 commit comments