@comicrelief/component-library 7.19.0 → 7.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
11
+
10
12
  var _react = _interopRequireWildcard(require("react"));
11
13
 
12
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
@@ -32,6 +34,13 @@ var VideoBanner = function VideoBanner(_ref) {
32
34
  loop = _ref.loop,
33
35
  muted = _ref.muted,
34
36
  showPosterAfterPlaying = _ref.showPosterAfterPlaying;
37
+
38
+ // Use the prop as our default
39
+ var _useState = (0, _react.useState)(muted),
40
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
+ isMuted = _useState2[0],
42
+ setIsMuted = _useState2[1];
43
+
35
44
  var videoEl = (0, _react.useRef)(null);
36
45
 
37
46
  var triggerPlay = function triggerPlay() {
@@ -41,6 +50,9 @@ var VideoBanner = function VideoBanner(_ref) {
41
50
  (0, _react.useEffect)(function () {
42
51
  // Trigger onload autoplay based on prop:
43
52
  if (autoPlay) {
53
+ // As it's a Chrome requirement to mute any autoplay videos,
54
+ // update accordingly; see https://developer.chrome.com/blog/autoplay/
55
+ setIsMuted(true);
44
56
  triggerPlay();
45
57
  } // And attach event listener based on prop:
46
58
 
@@ -51,14 +63,14 @@ var VideoBanner = function VideoBanner(_ref) {
51
63
  videoEl.current.load();
52
64
  });
53
65
  }
54
- });
66
+ }, [autoPlay, loop, showPosterAfterPlaying]);
55
67
  return /*#__PURE__*/_react.default.createElement(Video, {
56
68
  poster: poster,
57
69
  src: video,
58
70
  ref: videoEl,
59
71
  controls: controls,
60
72
  loop: loop,
61
- muted: muted
73
+ muted: isMuted
62
74
  }, "Your browser does not support video.");
63
75
  };
64
76
 
@@ -12,7 +12,7 @@ import poster from '../../../styleguide/assets/VideoBannerPosterImage.png';
12
12
  const src =
13
13
  'https://www.comicrelief.com/sites/default/files/downloads/Creativists_Logo_Web_small_V2_0.mp4';
14
14
 
15
- <VideoBanner poster={poster} video={src} loop={true} controls={true} autoPlay={true}
15
+ <VideoBanner poster={poster} video={src} loop={true} controls={true} autoPlay={true} muted={false}
16
16
  />;
17
17
  ```
18
18
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@comicrelief/component-library",
3
3
  "author": "Comic Relief Engineering Team",
4
- "version": "7.19.0",
4
+ "version": "7.19.1",
5
5
  "main": "dist/index.js",
6
6
  "license": "ISC",
7
7
  "jest": {
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useRef } from 'react';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import styled from 'styled-components';
4
4
 
@@ -12,6 +12,9 @@ const Video = styled.video.attrs(() => ({
12
12
  const VideoBanner = ({
13
13
  video, poster, controls, autoPlay, loop, muted, showPosterAfterPlaying
14
14
  }) => {
15
+ // Use the prop as our default
16
+ const [isMuted, setIsMuted] = useState(muted);
17
+
15
18
  const videoEl = useRef(null);
16
19
 
17
20
  const triggerPlay = () => {
@@ -21,6 +24,9 @@ const VideoBanner = ({
21
24
  useEffect(() => {
22
25
  // Trigger onload autoplay based on prop:
23
26
  if (autoPlay) {
27
+ // As it's a Chrome requirement to mute any autoplay videos,
28
+ // update accordingly; see https://developer.chrome.com/blog/autoplay/
29
+ setIsMuted(true);
24
30
  triggerPlay();
25
31
  }
26
32
 
@@ -31,7 +37,7 @@ const VideoBanner = ({
31
37
  videoEl.current.load();
32
38
  });
33
39
  }
34
- });
40
+ }, [autoPlay, loop, showPosterAfterPlaying]);
35
41
 
36
42
  return (
37
43
  <Video
@@ -40,7 +46,7 @@ const VideoBanner = ({
40
46
  ref={videoEl}
41
47
  controls={controls}
42
48
  loop={loop}
43
- muted={muted}
49
+ muted={isMuted}
44
50
  >
45
51
  Your browser does not support video.
46
52
  </Video>
@@ -12,7 +12,7 @@ import poster from '../../../styleguide/assets/VideoBannerPosterImage.png';
12
12
  const src =
13
13
  'https://www.comicrelief.com/sites/default/files/downloads/Creativists_Logo_Web_small_V2_0.mp4';
14
14
 
15
- <VideoBanner poster={poster} video={src} loop={true} controls={true} autoPlay={true}
15
+ <VideoBanner poster={poster} video={src} loop={true} controls={true} autoPlay={true} muted={false}
16
16
  />;
17
17
  ```
18
18