Skip to content

Commit 7c0f03d

Browse files
frederickobrienpippinpenalessiaAmitrano
committed
Dynamic data attribute for self hosted video, remove wrapper
Co-Authored-By: Pip <47357469+pippinpen@users.noreply.github.com> Co-Authored-By: Alessia Amitrano <alessia.amitranobo@gmail.com>
1 parent 44c1c48 commit 7c0f03d

2 files changed

Lines changed: 36 additions & 42 deletions

File tree

dotcom-rendering/src/components/SelfHostedVideo.island.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,13 +1071,18 @@ export const SelfHostedVideo = ({
10711071
}
10721072
}
10731073

1074+
const videoStyleFormat = videoStyle.toLocaleLowerCase();
1075+
10741076
return (
10751077
<figure
1078+
css={css`
1079+
margin-bottom: ${space[3]}px;
1080+
`}
10761081
ref={videoContainerRef}
1077-
className={`video-container ${videoStyle.toLocaleLowerCase()} ${
1082+
className={`video-container ${videoStyleFormat} ${
10781083
role === 'immersive' ? 'element-video-immersive' : ''
10791084
}`}
1080-
data-component="gu-video-loop"
1085+
data-component={`gu-video-${videoStyleFormat}`}
10811086
>
10821087
<div
10831088
ref={setNode}
Lines changed: 29 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { css } from '@emotion/react';
2-
import { space } from '@guardian/source/foundations';
31
import type { FEAspectRatio } from '../frontend/feFront';
42
import { isInteractive } from '../layouts/lib/interactiveLegacyStyling';
53
import type { ArticleFormat } from '../lib/articleFormat';
@@ -13,10 +11,6 @@ import type { VideoPlayerFormat } from '../types/mainMedia';
1311
import { Island } from './Island';
1412
import { SelfHostedVideo } from './SelfHostedVideo.island';
1513

16-
const containerStyles = css`
17-
margin-bottom: ${space[3]}px;
18-
`;
19-
2014
type SelfHostedVideoInArticleProps = {
2115
element: MediaAtomBlockElement;
2216
format: ArticleFormat;
@@ -49,39 +43,34 @@ export const SelfHostedVideoInArticle = ({
4943
}
5044

5145
return (
52-
<div css={containerStyles}>
53-
<Island priority="critical" defer={{ until: 'visible' }}>
54-
<SelfHostedVideo
55-
atomId={element.id}
56-
fallbackImage={posterImageUrl}
57-
fallbackImageAlt={caption}
58-
fallbackImageAspectRatio={
59-
(firstVideoSource?.aspectRatio ??
60-
'5:4') as FEAspectRatio
61-
}
62-
fallbackImageLoading="lazy"
63-
fallbackImageSize="small"
64-
aspectRatio={aspectRatio}
65-
linkTo="Article-embed-MediaAtomBlockElement"
66-
posterImage={posterImageUrl}
67-
posterImageAspectRatio={
68-
firstVideoSource?.aspectRatio ?? '5:4'
69-
}
70-
sources={sources}
71-
subtitleSize="medium"
72-
subtitleSource={getSubtitleAsset(element.assets)}
73-
videoStyle={videoStyle}
74-
uniqueId={element.id}
75-
caption={caption}
76-
format={format}
77-
isMainMedia={isMainMedia}
78-
role={role}
79-
preventAutoplay={videoStyle === 'Default'}
80-
restrictHeightOnDesktop={
81-
isVerticalVideo && !isInteractive(format.design)
82-
}
83-
/>
84-
</Island>
85-
</div>
46+
<Island priority="critical" defer={{ until: 'visible' }}>
47+
<SelfHostedVideo
48+
atomId={element.id}
49+
fallbackImage={posterImageUrl}
50+
fallbackImageAlt={caption}
51+
fallbackImageAspectRatio={
52+
(firstVideoSource?.aspectRatio ?? '5:4') as FEAspectRatio
53+
}
54+
fallbackImageLoading="lazy"
55+
fallbackImageSize="small"
56+
aspectRatio={aspectRatio}
57+
linkTo="Article-embed-MediaAtomBlockElement"
58+
posterImage={posterImageUrl}
59+
posterImageAspectRatio={firstVideoSource?.aspectRatio ?? '5:4'}
60+
sources={sources}
61+
subtitleSize="medium"
62+
subtitleSource={getSubtitleAsset(element.assets)}
63+
videoStyle={videoStyle}
64+
uniqueId={element.id}
65+
caption={caption}
66+
format={format}
67+
isMainMedia={isMainMedia}
68+
role={role}
69+
preventAutoplay={videoStyle === 'Default'}
70+
restrictHeightOnDesktop={
71+
isVerticalVideo && !isInteractive(format.design)
72+
}
73+
/>
74+
</Island>
8675
);
8776
};

0 commit comments

Comments
 (0)