@@ -61,7 +61,7 @@ import {
61
61
IconArrowBigUp ,
62
62
IconArrowsRight ,
63
63
IconBackpack ,
64
- IconBookmarksFilled ,
64
+ IconBookmarks ,
65
65
IconCheck ,
66
66
IconCloudDownload ,
67
67
IconEdit ,
@@ -468,7 +468,7 @@ export const BaseDisplayItem = (props: {
468
468
highlightRightText ?: string ;
469
469
children ?: ReactNode ;
470
470
nameRight ?: JSX . Element ;
471
- mediaReason ?: UserToMediaReason [ ] ;
471
+ mediaReason ?: UserToMediaReason [ ] | null ;
472
472
} ) => {
473
473
const colorScheme = useComputedColorScheme ( "dark" ) ;
474
474
@@ -492,6 +492,10 @@ export const BaseDisplayItem = (props: {
492
492
</ Box >
493
493
) ;
494
494
495
+ const reasons = props . mediaReason ?. filter ( ( r ) =>
496
+ [ UserToMediaReason . Seen , UserToMediaReason . Watchlist ] . includes ( r ) ,
497
+ ) ;
498
+
495
499
const themeIconSurrounder = ( idx : number , icon ?: JSX . Element ) => (
496
500
< ThemeIcon variant = "transparent" size = "sm" color = "lime" key = { idx } >
497
501
{ icon }
@@ -505,7 +509,6 @@ export const BaseDisplayItem = (props: {
505
509
justify = "center"
506
510
direction = "column"
507
511
>
508
- { props . topLeft }
509
512
< SurroundingElement style = { { flex : "none" } } pos = "relative" >
510
513
< Image
511
514
src = { props . imageLink }
@@ -527,29 +530,29 @@ export const BaseDisplayItem = (props: {
527
530
getInitials ( props . name ) ,
528
531
) }
529
532
/>
533
+ < Box pos = "absolute" style = { { zIndex : 999 } } top = { 10 } left = { 10 } >
534
+ { props . topLeft }
535
+ </ Box >
530
536
< Box pos = "absolute" top = { 5 } right = { 5 } >
531
537
{ props . topRight }
532
538
</ Box >
533
- { props . mediaReason ? (
539
+ { reasons && reasons . length > 0 ? (
534
540
< Group
535
541
style = { blackBgStyles }
536
542
pos = "absolute"
537
543
bottom = { 5 }
538
544
left = { 5 }
539
- gap = "xs"
545
+ gap = { 3 }
540
546
>
541
- { props . mediaReason
547
+ { reasons
542
548
. map ( ( r ) =>
543
549
match ( r )
544
550
. with ( UserToMediaReason . Seen , ( ) => (
545
551
< IconRosetteDiscountCheck />
546
552
) )
547
- . with ( UserToMediaReason . Watchlist , ( ) => (
548
- < IconBookmarksFilled />
549
- ) )
550
- . otherwise ( ( ) => undefined ) ,
553
+ . with ( UserToMediaReason . Watchlist , ( ) => < IconBookmarks /> )
554
+ . run ( ) ,
551
555
)
552
- . filter ( Boolean )
553
556
. map ( ( icon , idx ) => themeIconSurrounder ( idx , icon ) ) }
554
557
</ Group >
555
558
) : null }
@@ -605,7 +608,7 @@ export const MediaItemWithoutUpdateModal = (props: {
605
608
noHref ?: boolean ;
606
609
onClick ?: ( e : React . MouseEvent ) => Promise < void > ;
607
610
nameRight ?: JSX . Element ;
608
- mediaReason ?: UserToMediaReason [ ] ;
611
+ mediaReason ?: UserToMediaReason [ ] | null ;
609
612
} ) => {
610
613
const navigate = useNavigate ( ) ;
611
614
const id = props . item . identifier ;
@@ -640,15 +643,7 @@ export const MediaItemWithoutUpdateModal = (props: {
640
643
imagePlaceholder = { getInitials ( props . item ?. title || "" ) }
641
644
topLeft = {
642
645
props . imageOverlayForLoadingIndicator ? (
643
- < Loader
644
- pos = "absolute"
645
- style = { { zIndex : 999 } }
646
- top = { 10 }
647
- left = { 10 }
648
- color = "red"
649
- variant = "bars"
650
- size = "sm"
651
- />
646
+ < Loader color = "red" variant = "bars" size = "sm" />
652
647
) : null
653
648
}
654
649
mediaReason = { props . mediaReason }
@@ -675,14 +670,7 @@ export const MediaItemWithoutUpdateModal = (props: {
675
670
</ Box >
676
671
) : props . noRatingLink ? undefined : (
677
672
< Box
678
- p = { 3 }
679
- pos = "absolute"
680
- top = { 5 }
681
- right = { 5 }
682
- style = { {
683
- backgroundColor : "rgba(0, 0, 0, 0.75)" ,
684
- borderRadius : 3 ,
685
- } }
673
+ style = { blackBgStyles }
686
674
onClick = { ( e ) => {
687
675
e . preventDefault ( ) ;
688
676
navigate (
0 commit comments