@micromag/screen-video 0.3.143 → 0.3.144

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.
@@ -1 +1 @@
1
- .micromag-screen-video-container .micromag-screen-video-showControlsButton,.micromag-screen-video-unmuteAndPlayButton{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-screen-video-container .micromag-screen-video-content,.micromag-screen-video-container .micromag-screen-video-empty,.micromag-screen-video-container .micromag-screen-video-emptyContainer,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-image,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-placeholder,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-video{position:absolute;top:0;left:0;width:100%;height:100%}.micromag-screen-video-container{position:relative;width:100%;height:100%;overflow:hidden}.micromag-screen-video-disabled.micromag-screen-video-container{overflow:hidden;pointer-events:none}.micromag-screen-video-hidden.micromag-screen-video-container{display:none;visibility:hidden}.micromag-screen-video-placeholder.micromag-screen-video-container .micromag-screen-video-content{position:relative;padding:6px}.micromag-screen-video-container .micromag-screen-video-empty{margin:5px auto;border:2px dashed #343434;color:#343434}.micromag-screen-video-container .micromag-screen-video-emptyContainer{top:50%;height:0;padding-bottom:56.25%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.micromag-screen-video-container .micromag-screen-video-empty{margin:0}.micromag-screen-video-container .micromag-screen-video-content{overflow:hidden}.micromag-screen-video-container .micromag-screen-video-callToAction{padding-bottom:5px}.micromag-screen-video-container .micromag-screen-video-bottom{-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.micromag-screen-video-container .micromag-screen-video-bottom.micromag-screen-video-withGradient{background:-webkit-gradient(linear,left top, left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.4)));background:-o-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.4));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.4))}.micromag-screen-video-container .micromag-screen-video-controls{position:relative}.micromag-screen-video-container .micromag-screen-video-mediaControls{position:relative;z-index:1;padding:10px 20px 20px;-webkit-transition:z-index .15s linear,opacity .15s linear;-o-transition:z-index .15s linear,opacity .15s linear;transition:z-index .15s linear,opacity .15s linear;opacity:0}.micromag-screen-video-container .micromag-screen-video-mediaControls.micromag-screen-video-visible{z-index:3;opacity:1}.micromag-screen-video-container .micromag-screen-video-showControlsButton{display:block;position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;background-color:rgba(0,0,0,0)}.micromag-screen-video-container .micromag-screen-video-placeholder{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%}.micromag-screen-video-container .micromag-screen-video-videoContainer{position:absolute}.micromag-screen-video-container .micromag-screen-video-bottomContent{position:absolute;right:0;bottom:0;left:0;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-emptyContainer{top:0;height:100%;padding-bottom:0;-webkit-transform:none;-ms-transform:none;transform:none}.micromag-screen-video-unmuteAndPlayButton{display:block;position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;background-color:rgba(0,0,0,0)}.micromag-screen-video-bottomSeekBar{-webkit-transition:-webkit-transform .5s ease-out .5s;transition:-webkit-transform .5s ease-out .5s;-o-transition:transform .5s ease-out .5s;transition:transform .5s ease-out .5s;transition:transform .5s ease-out .5s, -webkit-transform .5s ease-out .5s}.micromag-screen-video-bottomSeekBar.micromag-screen-video-isHidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out, -webkit-transform .2s ease-out}
1
+ .micromag-screen-video-container .micromag-screen-video-showControlsButton,.micromag-screen-video-unmuteAndPlayButton{display:inline-block;position:relative;padding:0;border:0;background:rgba(0,0,0,0);color:inherit;font-family:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.micromag-screen-video-container .micromag-screen-video-content,.micromag-screen-video-container .micromag-screen-video-empty,.micromag-screen-video-container .micromag-screen-video-emptyContainer,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-image,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-placeholder,.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-video{position:absolute;top:0;left:0;width:100%;height:100%}.micromag-screen-video-container{position:relative;width:100%;height:100%;overflow:hidden}.micromag-screen-video-disabled.micromag-screen-video-container{overflow:hidden;pointer-events:none}.micromag-screen-video-hidden.micromag-screen-video-container{display:none;visibility:hidden}.micromag-screen-video-placeholder.micromag-screen-video-container .micromag-screen-video-content{position:relative;padding:6px}.micromag-screen-video-container .micromag-screen-video-empty{margin:5px auto;border:2px dashed #343434;color:#343434}.micromag-screen-video-container .micromag-screen-video-emptyContainer{top:50%;height:0;padding-bottom:56.25%;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.micromag-screen-video-container .micromag-screen-video-empty{margin:0}.micromag-screen-video-container .micromag-screen-video-content{overflow:hidden}.micromag-screen-video-container .micromag-screen-video-callToAction{padding-bottom:5px}.micromag-screen-video-container .micromag-screen-video-bottom{-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.micromag-screen-video-container .micromag-screen-video-bottom.micromag-screen-video-withGradient{background:-webkit-gradient(linear,left top, left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.4)));background:-o-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.4));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.4))}.micromag-screen-video-container .micromag-screen-video-controls{position:relative}.micromag-screen-video-container .micromag-screen-video-mediaControls{position:relative;z-index:1;padding:10px 20px 20px;-webkit-transition:z-index .15s linear,opacity .15s linear;-o-transition:z-index .15s linear,opacity .15s linear;transition:z-index .15s linear,opacity .15s linear;opacity:0}.micromag-screen-video-container .micromag-screen-video-mediaControls.micromag-screen-video-visible{z-index:3;opacity:1}.micromag-screen-video-container .micromag-screen-video-showControlsButton{display:block;position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;background-color:rgba(0,0,0,0)}.micromag-screen-video-container .micromag-screen-video-placeholder{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;height:100%}.micromag-screen-video-container .micromag-screen-video-videoContainer{position:absolute}.micromag-screen-video-container .micromag-screen-video-bottomContent{position:absolute;right:0;bottom:0;left:0;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}.micromag-screen-video-container.micromag-screen-video-fullscreen .micromag-screen-video-emptyContainer{top:0;height:100%;padding-bottom:0;-webkit-transform:none;-ms-transform:none;transform:none}.micromag-screen-video-unmuteAndPlayButton{display:block;position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;opacity:0;background-color:rgba(0,0,0,0)}.micromag-screen-video-bottomSeekBar{-webkit-transition:-webkit-transform .5s ease-out .5s;transition:-webkit-transform .5s ease-out .5s;-o-transition:transform .5s ease-out .5s;transition:transform .5s ease-out .5s;transition:transform .5s ease-out .5s, -webkit-transform .5s ease-out .5s}.micromag-screen-video-bottomSeekBar.micromag-screen-video-isHidden{-webkit-transform:translateY(100%);-ms-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .2s ease-out;transition:-webkit-transform .2s ease-out;-o-transition:transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out, -webkit-transform .2s ease-out}
package/es/index.js CHANGED
@@ -117,7 +117,6 @@ var VideoScreen = function VideoScreen(_ref) {
117
117
  seek = _ref3.seek,
118
118
  play = _ref3.play,
119
119
  pause = _ref3.pause,
120
- suspended = _ref3.suspended,
121
120
  _ref3$mediaRef = _ref3.mediaRef,
122
121
  apiMediaRef = _ref3$mediaRef === void 0 ? null : _ref3$mediaRef;
123
122
 
@@ -154,6 +153,11 @@ var VideoScreen = function VideoScreen(_ref) {
154
153
  muted = _useState10[0],
155
154
  setMuted = _useState10[1];
156
155
 
156
+ var _useState11 = useState(false),
157
+ _useState12 = _slicedToArray(_useState11, 2),
158
+ allowManualPlayOnTap = _useState12[0],
159
+ setAllowManualPlayOnTap = _useState12[1];
160
+
157
161
  var onTimeUpdate = useCallback(function (time) {
158
162
  setCurrentTime(time);
159
163
  }, [duration, setCurrentTime]);
@@ -236,10 +240,10 @@ var VideoScreen = function VideoScreen(_ref) {
236
240
  var hasCallToAction = callToAction !== null && callToAction.active === true;
237
241
  var hasVideo = video !== null;
238
242
 
239
- var _useState11 = useState(hasVideo),
240
- _useState12 = _slicedToArray(_useState11, 2),
241
- ready = _useState12[0],
242
- setReady = _useState12[1]; // useState(!hasVideo);
243
+ var _useState13 = useState(hasVideo),
244
+ _useState14 = _slicedToArray(_useState13, 2),
245
+ ready = _useState14[0],
246
+ setReady = _useState14[1]; // useState(!hasVideo);
243
247
 
244
248
 
245
249
  var transitionPlaying = current && ready;
@@ -284,9 +288,22 @@ var VideoScreen = function VideoScreen(_ref) {
284
288
  }, [videoUrl, hasVideoUrl, setReady]);
285
289
  var onVideoReady = useCallback(function () {
286
290
  setReady(true);
287
- }, [setReady]);
291
+ }, [setReady]); // @todo trying to see if it's a better strategy than using `onSuspended`
292
+
293
+ var AUTOPLAY_CHECK_DELAY = 1000; // @todo check if a timeout is needed?
294
+
295
+ var onCanPlay = useCallback(function () {
296
+ var autoplayCheckTimeout = setTimeout(function () {
297
+ if (current && autoPlay && !playing) {
298
+ setAllowManualPlayOnTap(true);
299
+ }
300
+ }, AUTOPLAY_CHECK_DELAY);
301
+ return function () {
302
+ return clearTimeout(autoplayCheckTimeout);
303
+ };
304
+ }, [current, autoPlay, playing, play, allowManualPlayOnTap, setAllowManualPlayOnTap]);
288
305
  var visibleControls = !autoPlay && !playing || muted || showMediaControls;
289
- var items = [autoPlay && suspended && !playing && !withControls ? /*#__PURE__*/React.createElement("button", {
306
+ var items = [allowManualPlayOnTap ? /*#__PURE__*/React.createElement("button", {
290
307
  key: "tap-catcher-button",
291
308
  type: "button",
292
309
  onTouchStart: play,
@@ -334,6 +351,7 @@ var VideoScreen = function VideoScreen(_ref) {
334
351
  className: styles.video,
335
352
  onReady: onVideoReady,
336
353
  onPlay: onPlay,
354
+ onCanPlay: onCanPlay,
337
355
  onPause: onPause,
338
356
  onTimeUpdate: onTimeUpdate,
339
357
  onProgressStep: onProgressStep,
package/lib/index.js CHANGED
@@ -138,7 +138,6 @@ var VideoScreen = function VideoScreen(_ref) {
138
138
  seek = _ref3.seek,
139
139
  play = _ref3.play,
140
140
  pause = _ref3.pause,
141
- suspended = _ref3.suspended,
142
141
  _ref3$mediaRef = _ref3.mediaRef,
143
142
  apiMediaRef = _ref3$mediaRef === void 0 ? null : _ref3$mediaRef;
144
143
 
@@ -175,6 +174,11 @@ var VideoScreen = function VideoScreen(_ref) {
175
174
  muted = _useState10[0],
176
175
  setMuted = _useState10[1];
177
176
 
177
+ var _useState11 = React.useState(false),
178
+ _useState12 = _slicedToArray__default["default"](_useState11, 2),
179
+ allowManualPlayOnTap = _useState12[0],
180
+ setAllowManualPlayOnTap = _useState12[1];
181
+
178
182
  var onTimeUpdate = React.useCallback(function (time) {
179
183
  setCurrentTime(time);
180
184
  }, [duration, setCurrentTime]);
@@ -257,10 +261,10 @@ var VideoScreen = function VideoScreen(_ref) {
257
261
  var hasCallToAction = callToAction !== null && callToAction.active === true;
258
262
  var hasVideo = video !== null;
259
263
 
260
- var _useState11 = React.useState(hasVideo),
261
- _useState12 = _slicedToArray__default["default"](_useState11, 2),
262
- ready = _useState12[0],
263
- setReady = _useState12[1]; // useState(!hasVideo);
264
+ var _useState13 = React.useState(hasVideo),
265
+ _useState14 = _slicedToArray__default["default"](_useState13, 2),
266
+ ready = _useState14[0],
267
+ setReady = _useState14[1]; // useState(!hasVideo);
264
268
 
265
269
 
266
270
  var transitionPlaying = current && ready;
@@ -305,9 +309,22 @@ var VideoScreen = function VideoScreen(_ref) {
305
309
  }, [videoUrl, hasVideoUrl, setReady]);
306
310
  var onVideoReady = React.useCallback(function () {
307
311
  setReady(true);
308
- }, [setReady]);
312
+ }, [setReady]); // @todo trying to see if it's a better strategy than using `onSuspended`
313
+
314
+ var AUTOPLAY_CHECK_DELAY = 1000; // @todo check if a timeout is needed?
315
+
316
+ var onCanPlay = React.useCallback(function () {
317
+ var autoplayCheckTimeout = setTimeout(function () {
318
+ if (current && autoPlay && !playing) {
319
+ setAllowManualPlayOnTap(true);
320
+ }
321
+ }, AUTOPLAY_CHECK_DELAY);
322
+ return function () {
323
+ return clearTimeout(autoplayCheckTimeout);
324
+ };
325
+ }, [current, autoPlay, playing, play, allowManualPlayOnTap, setAllowManualPlayOnTap]);
309
326
  var visibleControls = !autoPlay && !playing || muted || showMediaControls;
310
- var items = [autoPlay && suspended && !playing && !withControls ? /*#__PURE__*/React__default["default"].createElement("button", {
327
+ var items = [allowManualPlayOnTap ? /*#__PURE__*/React__default["default"].createElement("button", {
311
328
  key: "tap-catcher-button",
312
329
  type: "button",
313
330
  onTouchStart: play,
@@ -355,6 +372,7 @@ var VideoScreen = function VideoScreen(_ref) {
355
372
  className: styles.video,
356
373
  onReady: onVideoReady,
357
374
  onPlay: onPlay,
375
+ onCanPlay: onCanPlay,
358
376
  onPause: onPause,
359
377
  onTimeUpdate: onTimeUpdate,
360
378
  onProgressStep: onProgressStep,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/screen-video",
3
- "version": "0.3.143",
3
+ "version": "0.3.144",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "javascript"
@@ -50,15 +50,15 @@
50
50
  "dependencies": {
51
51
  "@babel/runtime": "^7.13.10",
52
52
  "@folklore/size": "^0.1.20",
53
- "@micromag/core": "^0.3.143",
54
- "@micromag/element-background": "^0.3.143",
55
- "@micromag/element-call-to-action": "^0.3.143",
56
- "@micromag/element-closed-captions": "^0.3.143",
57
- "@micromag/element-container": "^0.3.143",
58
- "@micromag/element-image": "^0.3.143",
59
- "@micromag/element-media-controls": "^0.3.143",
60
- "@micromag/element-video": "^0.3.143",
61
- "@micromag/transforms": "^0.3.143",
53
+ "@micromag/core": "^0.3.144",
54
+ "@micromag/element-background": "^0.3.144",
55
+ "@micromag/element-call-to-action": "^0.3.144",
56
+ "@micromag/element-closed-captions": "^0.3.144",
57
+ "@micromag/element-container": "^0.3.144",
58
+ "@micromag/element-image": "^0.3.144",
59
+ "@micromag/element-media-controls": "^0.3.144",
60
+ "@micromag/element-video": "^0.3.144",
61
+ "@micromag/transforms": "^0.3.144",
62
62
  "classnames": "^2.2.6",
63
63
  "lodash": "^4.17.21",
64
64
  "prop-types": "^15.7.2",
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "7a57394e3bda6a87466f32f6eb45df34486a98ad"
71
+ "gitHead": "d0f88b972312c6f728601a828b7ab98fd396dfee"
72
72
  }