Skip to content

Commit 32d55c7

Browse files
authoredAug 19, 2021
feat: lazy load (#308)
* feat: lazy load Refs #234 * feat: loading to be more specific
1 parent 462f140 commit 32d55c7

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed
 

‎index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export interface YouTubeProps {
3737
id?: string;
3838
className?: string;
3939
containerClassName?: string;
40+
loading?: 'lazy' | 'eager' | 'auto';
4041
opts?: Options;
4142
onReady?(event: { target: YouTubePlayer }): void;
4243
onError?(event: { target: YouTubePlayer; data: number }): void;

‎src/YouTube.js

+11-3
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,12 @@ function shouldResetPlayer(prevProps, props) {
6666
* @param {Object} props
6767
*/
6868
function shouldUpdatePlayer(prevProps, props) {
69-
return prevProps.id !== props.id || prevProps.className !== props.className
70-
|| prevProps.opts.width !== props.opts.width || prevProps.opts.height !== props.opts.height;
69+
return (
70+
prevProps.id !== props.id ||
71+
prevProps.className !== props.className ||
72+
prevProps.opts.width !== props.opts.width ||
73+
prevProps.opts.height !== props.opts.height
74+
);
7175
}
7276

7377
class YouTube extends React.Component {
@@ -274,7 +278,7 @@ class YouTube extends React.Component {
274278
render() {
275279
return (
276280
<div className={this.props.containerClassName}>
277-
<div id={this.props.id} className={this.props.className} ref={this.refContainer} />
281+
<div id={this.props.id} className={this.props.className} ref={this.refContainer} loading={this.props.loading} />
278282
</div>
279283
);
280284
}
@@ -291,6 +295,9 @@ YouTube.propTypes = {
291295
// custom class name for player container element
292296
containerClassName: PropTypes.string,
293297

298+
// custom loading for player element
299+
loading: PropTypes.oneOf(['lazy', 'eager', 'auto']),
300+
294301
// https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player
295302
opts: PropTypes.objectOf(PropTypes.any),
296303

@@ -309,6 +316,7 @@ YouTube.defaultProps = {
309316
videoId: null,
310317
id: null,
311318
className: null,
319+
loading: null,
312320
opts: {},
313321
containerClassName: '',
314322
onReady: () => {},

0 commit comments

Comments
 (0)
Please sign in to comment.