Skip to content

Commit a21ddd3

Browse files
authored
Merge pull request #14369 from guardian/doml/opinion-avatar
Create "OpinionNoAvatar" AB test
2 parents 27666fb + e5c07f3 commit a21ddd3

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

dotcom-rendering/src/components/DecideContainer.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ type Props = {
4747
frontId?: string;
4848
collectionId: number;
4949
containerLevel?: DCRContainerLevel;
50+
isInOpinionNoAvatarVariant?: boolean;
5051
};
5152

5253
export const DecideContainer = ({
@@ -62,6 +63,7 @@ export const DecideContainer = ({
6263
frontId,
6364
collectionId,
6465
containerLevel,
66+
isInOpinionNoAvatarVariant,
6567
}: Props) => {
6668
switch (containerType) {
6769
case 'dynamic/fast':
@@ -257,6 +259,7 @@ export const DecideContainer = ({
257259
aspectRatio={aspectRatio}
258260
containerLevel={containerLevel}
259261
collectionId={collectionId}
262+
isInOpinionNoAvatarVariant={isInOpinionNoAvatarVariant}
260263
/>
261264
);
262265
case 'scrollable/small':
@@ -286,6 +289,7 @@ export const DecideContainer = ({
286289
absoluteServerTimes={absoluteServerTimes}
287290
aspectRatio={aspectRatio}
288291
sectionId={sectionId}
292+
isInOpinionNoAvatarVariant={isInOpinionNoAvatarVariant}
289293
/>
290294
</Island>
291295
);

dotcom-rendering/src/components/FlexibleGeneral.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type Props = {
3232
aspectRatio: AspectRatio;
3333
containerLevel?: DCRContainerLevel;
3434
collectionId: number;
35+
isInOpinionNoAvatarVariant?: boolean;
3536
};
3637

3738
type RowLayout = 'oneCardHalfWidth' | 'oneCardFullWidth' | 'twoCard';
@@ -581,6 +582,7 @@ export const FlexibleGeneral = ({
581582
aspectRatio,
582583
containerLevel = 'Primary',
583584
collectionId,
585+
isInOpinionNoAvatarVariant,
584586
}: Props) => {
585587
const splash = [...groupedTrails.splash].slice(0, 1).map((snap) => ({
586588
...snap,
@@ -592,6 +594,9 @@ export const FlexibleGeneral = ({
592594
.map((standard, i) => ({
593595
...standard,
594596
uniqueId: `collection-${collectionId}-standard-${i}`,
597+
avatarUrl: isInOpinionNoAvatarVariant
598+
? undefined
599+
: standard.avatarUrl,
595600
}));
596601

597602
const groupedCards = decideCardPositions(cards);

dotcom-rendering/src/components/ScrollableMedium.importable.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ type Props = {
1717
containerType: DCRContainerType;
1818
aspectRatio: AspectRatio;
1919
sectionId: string;
20+
isInOpinionNoAvatarVariant?: boolean;
2021
};
2122

2223
/**
@@ -35,6 +36,7 @@ export const ScrollableMedium = ({
3536
showAge,
3637
aspectRatio,
3738
sectionId,
39+
isInOpinionNoAvatarVariant,
3840
}: Props) => {
3941
return (
4042
<ScrollableCarousel
@@ -51,7 +53,12 @@ export const ScrollableMedium = ({
5153
return (
5254
<ScrollableCarousel.Item key={trail.url}>
5355
<FrontCard
54-
trail={trail}
56+
trail={{
57+
...trail,
58+
avatarUrl: isInOpinionNoAvatarVariant
59+
? undefined
60+
: trail.avatarUrl,
61+
}}
5562
imageLoading={imageLoading}
5663
absoluteServerTimes={!!absoluteServerTimes}
5764
containerPalette={containerPalette}

dotcom-rendering/src/layouts/FrontLayout.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,15 @@ export const FrontLayout = ({ front, NAV }: Props) => {
136136

137137
const contributionsServiceUrl = getContributionsServiceUrl(front);
138138

139+
/**
140+
* We are running an AB test which replaces the avatar for the card image
141+
* in the Opinion and More opinion collections on network fronts.
142+
*/
143+
const isInOpinionNoAvatarVariant = (collectionName: string) =>
144+
abTests.opinionNoAvatarVariant === 'variant' &&
145+
front.isNetworkFront &&
146+
(collectionName === 'Opinion' || collectionName === 'More opinion');
147+
139148
const fallbackAspectRatio = (collectionType: DCRContainerType) => {
140149
switch (collectionType) {
141150
case 'scrollable/feature':
@@ -634,6 +643,9 @@ export const FrontLayout = ({ front, NAV }: Props) => {
634643
sectionId={ophanName}
635644
collectionId={index + 1}
636645
containerLevel={collection.containerLevel}
646+
isInOpinionNoAvatarVariant={isInOpinionNoAvatarVariant(
647+
collection.displayName,
648+
)}
637649
/>
638650
</FrontSection>
639651

0 commit comments

Comments
 (0)