@@ -105,8 +105,8 @@ const ImmersiveCardLayout = ({
105
105
const isLoopingVideo = card . mainMedia ?. type === 'LoopVideo' ;
106
106
107
107
return (
108
- < UL padBottom = { true } >
109
- < LI key = { card . url } padSides = { true } >
108
+ < UL padBottom = { true } key = { card . url } >
109
+ < LI padSides = { true } >
110
110
< FeatureCard
111
111
collectionId = { collectionId }
112
112
linkTo = { card . url }
@@ -447,6 +447,7 @@ const FullWidthCardLayout = ({
447
447
showTopBar = { ! isFirstRow }
448
448
padBottom = { ! isLastRow }
449
449
hasLargeSpacing = { ! isLastRow }
450
+ key = { card . url }
450
451
>
451
452
< LI
452
453
padSides = { true }
@@ -501,6 +502,7 @@ const HalfWidthCardLayout = ({
501
502
isFirstRow,
502
503
isFirstStandardRow,
503
504
aspectRatio,
505
+ row,
504
506
isLastRow,
505
507
containerLevel,
506
508
isInHideTrailsAbTest,
@@ -513,6 +515,7 @@ const HalfWidthCardLayout = ({
513
515
showAge ?: boolean ;
514
516
absoluteServerTimes : boolean ;
515
517
aspectRatio : AspectRatio ;
518
+ row : number ;
516
519
isLastRow : boolean ;
517
520
containerLevel : DCRContainerLevel ;
518
521
isInHideTrailsAbTest ?: boolean ;
@@ -527,6 +530,7 @@ const HalfWidthCardLayout = ({
527
530
showTopBar = { ! isFirstRow }
528
531
/** We use one full top bar for the first row and use a split one for subsequent rows */
529
532
splitTopBar = { ! isFirstStandardRow }
533
+ key = { row }
530
534
>
531
535
{ cards . map ( ( card , cardIndex ) => {
532
536
return (
@@ -642,6 +646,7 @@ export const FlexibleGeneral = ({
642
646
isFirstRow = { ! splash . length && i === 0 }
643
647
isFirstStandardRow = { i === 0 }
644
648
aspectRatio = { aspectRatio }
649
+ row = { i + 1 }
645
650
isLastRow = { i === groupedCards . length - 1 }
646
651
containerLevel = { containerLevel }
647
652
isInHideTrailsAbTest = { isInHideTrailsAbTest }
0 commit comments