Skip to content

Commit a51c18a

Browse files
author
Juarez Mota
committed
feat: display different banner header image when collapsed
1 parent 4b34eb5 commit a51c18a

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

dotcom-rendering/src/components/marketing/banners/designableBanner/components/DesignableBannerHeader.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,11 @@ export function DesignableBannerHeader({
4747

4848
const resolveImage = (settings: Image) => {
4949
return (
50-
<DesignableBannerVisual settings={settings} isHeaderImage={true} />
50+
<DesignableBannerVisual
51+
settings={settings}
52+
isHeaderImage={true}
53+
isCollapsed={isCollapsedForABTest}
54+
/>
5155
);
5256
};
5357

dotcom-rendering/src/components/marketing/banners/designableBanner/components/DesignableBannerVisual.tsx

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,14 @@ interface DesignableBannerVisualProps {
1616
settings: Image;
1717
bannerId?: BannerId;
1818
isHeaderImage?: boolean;
19+
isCollapsed?: boolean;
1920
}
2021

2122
export function DesignableBannerVisual({
2223
settings,
2324
bannerId,
2425
isHeaderImage,
26+
isCollapsed,
2527
}: DesignableBannerVisualProps): JSX.Element {
2628
const baseImage: ImageAttrs = {
2729
url: settings.mainUrl,
@@ -35,16 +37,33 @@ export function DesignableBannerVisual({
3537
images.push({ url: settings.mobileUrl, media: '(max-width: 739px)' });
3638
}
3739
if (settings.tabletUrl) {
38-
images.push({ url: settings.tabletUrl, media: '(max-width: 979px)' });
40+
images.push({
41+
url: getImageUrl(
42+
isCollapsed,
43+
settings.mobileUrl,
44+
settings.tabletUrl,
45+
),
46+
media: '(max-width: 979px)',
47+
});
3948
}
4049
if (settings.desktopUrl) {
41-
images.push({ url: settings.desktopUrl, media: '(max-width: 1139px)' });
50+
images.push({
51+
url: getImageUrl(
52+
isCollapsed,
53+
settings.tabletUrl,
54+
settings.desktopUrl,
55+
),
56+
media: '(max-width: 1139px)',
57+
});
4258
}
4359
if (settings.leftColUrl) {
4460
images.push({ url: settings.leftColUrl, media: '(max-width: 1299px)' });
4561
}
4662
if (settings.wideUrl) {
47-
images.push({ url: settings.wideUrl, media: '' });
63+
images.push({
64+
url: getImageUrl(isCollapsed, settings.tabletUrl, settings.wideUrl),
65+
media: '',
66+
});
4867
}
4968

5069
return (
@@ -57,6 +76,17 @@ export function DesignableBannerVisual({
5776
);
5877
}
5978

79+
const getImageUrl = (
80+
isCollapsed: boolean | undefined,
81+
collapsedUrl: string | undefined,
82+
originalUrl: string,
83+
): string => {
84+
if (isCollapsed) {
85+
return collapsedUrl ?? originalUrl;
86+
}
87+
return originalUrl;
88+
};
89+
6090
// ---- Styles ---- //
6191

6292
const getStyles = (isHeaderImage = false) => {

0 commit comments

Comments
 (0)