Skip to content

Commit 31dca25

Browse files
Adjust media furniture layout
1 parent 9d53c55 commit 31dca25

2 files changed

Lines changed: 63 additions & 37 deletions

File tree

dotcom-rendering/src/layouts/StandardLayout.tsx

Lines changed: 62 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,26 @@ const stretchLines = css`
8484
}
8585
`;
8686

87+
const spanCentreToRightColumnFromDesktop = css`
88+
${from.desktop} {
89+
${grid.between('centre-column-start', 'right-column-start')};
90+
}
91+
`;
92+
93+
const rightColumnCss = (isMedia: boolean) => css`
94+
display: none;
95+
96+
${from.desktop} {
97+
display: block;
98+
padding-top: 6px;
99+
grid-row: ${isMedia ? 3 : 1} / span 999;
100+
}
101+
102+
${from.leftCol} {
103+
grid-row: ${isMedia ? 2 : 1} / span 999;
104+
}
105+
`;
106+
87107
interface GridItemProps {
88108
area: Area;
89109
layoutType: LayoutType;
@@ -92,45 +112,43 @@ interface GridItemProps {
92112
desktop?: 'left' | 'centre' | 'right';
93113
leftCol?: 'left' | 'centre' | 'right';
94114
};
95-
element?: 'div' | 'article' | 'main' | 'aside' | 'section';
115+
element?: 'div' | 'aside';
96116
customCss?: SerializedStyles;
97117
children: React.ReactNode;
98118
}
99119

120+
const columnCss = (columnsConfig?: GridItemProps['columns']) => [
121+
grid.column.centre,
122+
Object.entries({
123+
tablet: columnsConfig?.tablet,
124+
desktop: columnsConfig?.desktop,
125+
leftCol: columnsConfig?.leftCol,
126+
})
127+
.filter(([, value]) => value != null)
128+
.map(
129+
([bp, col]) => css`
130+
${from[bp as keyof typeof from]} {
131+
${grid.column[col!]};
132+
}
133+
`,
134+
),
135+
];
136+
100137
const GridItem = ({
101138
area,
102139
layoutType,
103140
columns,
104141
element: Element = 'div',
105142
customCss,
106143
children,
107-
}: GridItemProps) => {
108-
const columnCss = (columnsConfig?: GridItemProps['columns']) => [
109-
grid.column.centre,
110-
Object.entries({
111-
tablet: columnsConfig?.tablet,
112-
desktop: columnsConfig?.desktop,
113-
leftCol: columnsConfig?.leftCol,
114-
})
115-
.filter(([, value]) => value != null)
116-
.map(
117-
([bp, col]) => css`
118-
${from[bp as keyof typeof from]} {
119-
${grid.column[col!]};
120-
}
121-
`,
122-
),
123-
];
124-
125-
return (
126-
<Element
127-
data-gu-name={area}
128-
css={css([columnCss(columns), rowCss(area, layoutType), customCss])}
129-
>
130-
{children}
131-
</Element>
132-
);
133-
};
144+
}: GridItemProps) => (
145+
<Element
146+
data-gu-name={area}
147+
css={css([columnCss(columns), rowCss(area, layoutType), customCss])}
148+
>
149+
{children}
150+
</Element>
151+
);
134152

135153
interface Props {
136154
article: ArticleDeprecated;
@@ -336,6 +354,11 @@ export const StandardLayout = (props: WebProps | AppProps) => {
336354
area="main-media"
337355
layoutType={layoutType}
338356
element="div"
357+
customCss={
358+
isMedia
359+
? spanCentreToRightColumnFromDesktop
360+
: undefined
361+
}
339362
>
340363
<div css={!isMedia && maxWidth}>
341364
<MainMedia
@@ -404,6 +427,11 @@ export const StandardLayout = (props: WebProps | AppProps) => {
404427
area="standfirst"
405428
layoutType={layoutType}
406429
element="div"
430+
customCss={
431+
isMedia
432+
? spanCentreToRightColumnFromDesktop
433+
: undefined
434+
}
407435
>
408436
<Standfirst
409437
format={format}
@@ -532,6 +560,11 @@ export const StandardLayout = (props: WebProps | AppProps) => {
532560
area="body"
533561
layoutType={layoutType}
534562
element="div"
563+
customCss={
564+
isMedia
565+
? spanCentreToRightColumnFromDesktop
566+
: undefined
567+
}
535568
>
536569
{/* Only show Listen to Article button on App landscape views */}
537570
{isApps && (
@@ -675,14 +708,7 @@ export const StandardLayout = (props: WebProps | AppProps) => {
675708
area="right-column"
676709
layoutType={layoutType}
677710
columns={{ desktop: 'right' }}
678-
customCss={css`
679-
display: none;
680-
${from.desktop} {
681-
display: block;
682-
padding-top: 6px;
683-
grid-row: 1 / span 999;
684-
}
685-
`}
711+
customCss={rightColumnCss(isMedia)}
686712
element="aside"
687713
>
688714
<Island

dotcom-rendering/src/layouts/lib/furnitureLayouts.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export type Area =
1212
| 'meta'
1313
| 'body'
1414
| 'right-column'
15-
// Match report specific areas
15+
// Match report specific area
1616
| 'match-summary';
1717

1818
type LayoutRows = Partial<

0 commit comments

Comments
 (0)