Skip to content

Commit 1f9df4a

Browse files
authored
Merge pull request #29 from ibrahimcesar/issue-28
2 parents 3255fe5 + 51205e8 commit 1f9df4a

File tree

10 files changed

+742
-326
lines changed

10 files changed

+742
-326
lines changed

β€Ždemo/package-lock.jsonβ€Ž

Lines changed: 675 additions & 299 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Ždemo/package.jsonβ€Ž

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11

22
{
3-
"name": "demo",
4-
"version": "0.1.0",
3+
"name": "demo-react-lite-youtube",
4+
"version": "0.2.0",
55
"private": true,
66
"scripts": {
77
"dev": "next dev",
88
"build": "next build && next export",
99
"start": "next start"
1010
},
1111
"dependencies": {
12-
"babel-plugin-prismjs": "^2.0.1",
13-
"next": "11.1.1",
14-
"prismjs": "^1.24.0",
12+
"babel-plugin-prismjs": "^2.1.0",
13+
"next": "11.1.2",
14+
"prismjs": "^1.25.0",
1515
"react": "17.0.2",
1616
"react-dom": "17.0.2",
17-
"react-lite-youtube-embed": "2.0.9-beta"
17+
"react-lite-youtube-embed": "2.0.11-beta.6"
1818
}
1919
}

β€Ždemo/pages/index.jsβ€Ž

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Prism from "prismjs"
66
import styles from '../styles/Home.module.css'
77

88
export default function Home() {
9-
useEffect(() => {
9+
useEffect(() => {
1010
Prism.highlightAll();
1111
}, []);
1212

@@ -80,6 +80,28 @@ export default function Home() {
8080
id="HaEPXoXVf2k"
8181
title="Amazon DynamoDB Deep Dive"
8282
poster="mqdefault"
83+
/>
84+
`
85+
}
86+
</code>
87+
</pre>
88+
</div>
89+
<div>
90+
<h2>Using the Webp image format</h2>
91+
<LiteYouTubeEmbed
92+
id="HaEPXoXVf2k"
93+
title="Amazon DynamoDB Deep Dive"
94+
poster="hqdefault"
95+
webp
96+
/>
97+
<pre>
98+
<code className="language-jsx">
99+
{`
100+
<LiteYouTubeEmbed
101+
id="HaEPXoXVf2k"
102+
title="Amazon DynamoDB Deep Dive"
103+
poster="hqdefault"
104+
webp
83105
/>
84106
`
85107
}
@@ -134,6 +156,12 @@ export default function Home() {
134156
</pre>
135157
</div>
136158
</div>
159+
{/* <LiteYouTubeEmbed
160+
id="jB20NKw3c6I"
161+
title="YouTube Embed"
162+
poster="maxresdefault"
163+
validatePoster
164+
/> */}
137165
</main>
138166

139167
<footer className={styles.footer}>
@@ -143,7 +171,6 @@ export default function Home() {
143171
rel="noopener noreferrer"
144172
>
145173
Demo for <span role="img" aria-label="TV" style={{marginLeft: "5px", marginRight: "5px"}}>β€β€β€Ž β€Žβ€β€β€Ž πŸ“Ί β€β€β€Ž β€Žβ€β€β€Ž </span> React Lite YouTube Embed
146-
147174
</a>
148175
</footer>
149176
</div>

β€Ždist/index.d.tsβ€Ž

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Ždist/index.es.jsxβ€Ž

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Ždist/index.es.jsx.mapβ€Ž

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Ždist/index.jsxβ€Ž

Lines changed: 6 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Ždist/index.jsx.mapβ€Ž

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

β€Žpackage.jsonβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-lite-youtube-embed",
3-
"version": "2.0.10",
3+
"version": "2.0.11",
44
"description": "A private by default, faster and cleaner YouTube embed component for React applications",
55
"main": "dist/index.jsx",
66
"module": "dist/index.es.jsx",

β€Žsrc/lib/index.tsxβ€Ž

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ interface LiteYouTube {
2323
playlist?: boolean;
2424
playlistCoverId?: string;
2525
poster?: imgResolution;
26+
webp?: boolean;
2627
wrapperClass?: string;
2728
onIframeAdded?: () => void
2829
}
@@ -36,9 +37,11 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
3637
const posterImp = props.poster || "hqdefault";
3738
const paramsImp = `&${props.params}` || "";
3839
const announceWatch = props.announce || "Watch";
40+
const format = props.webp ? 'webp' : 'jpg';
41+
const vi = props.webp ? 'vi_webp' : 'vi'
3942
const posterUrl = !props.playlist ?
40-
`https://i.ytimg.com/vi/${videoId}/${posterImp}.jpg`:
41-
`https://i.ytimg.com/vi/${videoPlaylisCovertId}/${posterImp}.jpg`;
43+
`https://i.ytimg.com/${vi}/${videoId}/${posterImp}.${format}` :
44+
`https://i.ytimg.com/${vi}/${videoPlaylisCovertId}/${posterImp}.${format}`;
4245
let ytUrl = props.noCookie
4346
? "https://www.youtube-nocookie.com"
4447
: "https://www.youtube.com";
@@ -56,7 +59,7 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
5659
const iframeClassImp = props.iframeClass || "";
5760
const playerClassImp = props.playerClass || "lty-playbtn";
5861
const wrapperClassImp = props.wrapperClass || "yt-lite";
59-
const onIframeAdded = props.onIframeAdded || function() {};
62+
const onIframeAdded = props.onIframeAdded || function () { };
6063

6164
const warmConnections = () => {
6265
if (preconnected) return;
@@ -69,9 +72,14 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
6972
setIframe(true);
7073
};
7174

75+
7276
return (
7377
<>
74-
<link rel="preload" href={posterUrl} as="image" />
78+
<link
79+
rel="preload"
80+
href={posterUrl}
81+
as="image"
82+
/>
7583
<>
7684
{preconnected && (
7785
<>
@@ -89,7 +97,7 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
8997
</>
9098
)}
9199
</>
92-
<div
100+
<article
93101
onPointerOver={warmConnections}
94102
onClick={addIframe}
95103
className={`${wrapperClassImp} ${iframe && activatedClassImp}`}
@@ -103,7 +111,7 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
103111
>
104112
<button
105113
className={playerClassImp}
106-
aria-label={`${announceWatch} ${videoTitle}`}></button>
114+
aria-label={`${announceWatch} ${videoTitle}`} />
107115
{iframe && (
108116
<iframe
109117
className={iframeClassImp}
@@ -116,7 +124,7 @@ export default function LiteYouTubeEmbed(props: LiteYouTube) {
116124
src={iframeSrc}
117125
></iframe>
118126
)}
119-
</div>
127+
</article>
120128
</>
121129
);
122130
}

0 commit comments

Comments
Β (0)