@micromag/screen-video 0.3.188 → 0.3.191
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.
- package/es/index.js +25 -13
- package/lib/index.js +24 -12
- package/package.json +11 -11
package/es/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
5
5
|
import { getSizeWithinBounds } from '@folklore/size';
|
|
6
6
|
import classNames from 'classnames';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
|
-
import React, {
|
|
8
|
+
import React, { useState, useEffect, useCallback, useMemo } from 'react';
|
|
9
9
|
import { PropTypes as PropTypes$1 } from '@micromag/core';
|
|
10
10
|
import { ScreenElement, PlaceholderVideo, Empty, Transitions } from '@micromag/core/components';
|
|
11
11
|
import { useScreenSize, useScreenRenderContext, useViewerNavigation, useViewerContext, useViewerWebView, usePlaybackContext, usePlaybackMediaRef, useViewerContainer } from '@micromag/core/contexts';
|
|
@@ -118,8 +118,15 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
118
118
|
hideControls = _usePlaybackContext.hideControls;
|
|
119
119
|
|
|
120
120
|
var mediaRef = usePlaybackMediaRef(current);
|
|
121
|
+
|
|
122
|
+
var _useState = useState(false),
|
|
123
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
124
|
+
hasPlayed = _useState2[0],
|
|
125
|
+
setHasPlayed = _useState2[1];
|
|
126
|
+
|
|
121
127
|
var backgroundPlaying = current && (isView || isEdit);
|
|
122
128
|
var videoPlaying = current && (isView || isEdit) && playing;
|
|
129
|
+
var shouldDisplayPoster = isPreview || isCapture || isView && active && !current && !hasPlayed;
|
|
123
130
|
useEffect(function () {
|
|
124
131
|
if (!current) {
|
|
125
132
|
return function () {};
|
|
@@ -174,15 +181,15 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
174
181
|
}
|
|
175
182
|
}, [activityDetected, showControls, hideControls]); // Get api state updates from callback
|
|
176
183
|
|
|
177
|
-
var _useState = useState(null),
|
|
178
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
179
|
-
currentTime = _useState2[0],
|
|
180
|
-
setCurrentTime = _useState2[1];
|
|
181
|
-
|
|
182
184
|
var _useState3 = useState(null),
|
|
183
185
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
184
|
-
|
|
185
|
-
|
|
186
|
+
currentTime = _useState4[0],
|
|
187
|
+
setCurrentTime = _useState4[1];
|
|
188
|
+
|
|
189
|
+
var _useState5 = useState(null),
|
|
190
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
191
|
+
duration = _useState6[0],
|
|
192
|
+
setDuration = _useState6[1];
|
|
186
193
|
|
|
187
194
|
var onTimeUpdate = useCallback(function (time) {
|
|
188
195
|
setCurrentTime(time);
|
|
@@ -195,6 +202,11 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
195
202
|
}, [setDuration]);
|
|
196
203
|
var onPlay = useCallback(function (_ref3) {
|
|
197
204
|
var initial = _ref3.initial;
|
|
205
|
+
|
|
206
|
+
if (!hasPlayed) {
|
|
207
|
+
setHasPlayed(true);
|
|
208
|
+
}
|
|
209
|
+
|
|
198
210
|
trackScreenMedia(video, initial ? 'play' : 'resume');
|
|
199
211
|
}, [trackScreenMedia, video]);
|
|
200
212
|
var onPause = useCallback(function (_ref4) {
|
|
@@ -217,10 +229,10 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
217
229
|
var hasCallToAction = callToAction !== null && callToAction.active === true;
|
|
218
230
|
var hasVideo = video !== null;
|
|
219
231
|
|
|
220
|
-
var
|
|
221
|
-
|
|
222
|
-
ready =
|
|
223
|
-
setReady =
|
|
232
|
+
var _useState7 = useState(hasVideo),
|
|
233
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
234
|
+
ready = _useState8[0],
|
|
235
|
+
setReady = _useState8[1]; // useState(!hasVideo);
|
|
224
236
|
|
|
225
237
|
|
|
226
238
|
var transitionPlaying = current && ready;
|
|
@@ -296,7 +308,7 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
296
308
|
left: resizedVideoLeft,
|
|
297
309
|
top: resizedVideoTop
|
|
298
310
|
}
|
|
299
|
-
},
|
|
311
|
+
}, shouldDisplayPoster ? /*#__PURE__*/React.createElement(Image, {
|
|
300
312
|
className: styles.image,
|
|
301
313
|
media: finalThumbnail,
|
|
302
314
|
width: resizedVideoWidth,
|
package/lib/index.js
CHANGED
|
@@ -138,8 +138,15 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
138
138
|
hideControls = _usePlaybackContext.hideControls;
|
|
139
139
|
|
|
140
140
|
var mediaRef = contexts.usePlaybackMediaRef(current);
|
|
141
|
+
|
|
142
|
+
var _useState = React.useState(false),
|
|
143
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
144
|
+
hasPlayed = _useState2[0],
|
|
145
|
+
setHasPlayed = _useState2[1];
|
|
146
|
+
|
|
141
147
|
var backgroundPlaying = current && (isView || isEdit);
|
|
142
148
|
var videoPlaying = current && (isView || isEdit) && playing;
|
|
149
|
+
var shouldDisplayPoster = isPreview || isCapture || isView && active && !current && !hasPlayed;
|
|
143
150
|
React.useEffect(function () {
|
|
144
151
|
if (!current) {
|
|
145
152
|
return function () {};
|
|
@@ -194,15 +201,15 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
194
201
|
}
|
|
195
202
|
}, [activityDetected, showControls, hideControls]); // Get api state updates from callback
|
|
196
203
|
|
|
197
|
-
var _useState = React.useState(null),
|
|
198
|
-
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
199
|
-
currentTime = _useState2[0],
|
|
200
|
-
setCurrentTime = _useState2[1];
|
|
201
|
-
|
|
202
204
|
var _useState3 = React.useState(null),
|
|
203
205
|
_useState4 = _slicedToArray__default["default"](_useState3, 2),
|
|
204
|
-
|
|
205
|
-
|
|
206
|
+
currentTime = _useState4[0],
|
|
207
|
+
setCurrentTime = _useState4[1];
|
|
208
|
+
|
|
209
|
+
var _useState5 = React.useState(null),
|
|
210
|
+
_useState6 = _slicedToArray__default["default"](_useState5, 2),
|
|
211
|
+
duration = _useState6[0],
|
|
212
|
+
setDuration = _useState6[1];
|
|
206
213
|
|
|
207
214
|
var onTimeUpdate = React.useCallback(function (time) {
|
|
208
215
|
setCurrentTime(time);
|
|
@@ -215,6 +222,11 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
215
222
|
}, [setDuration]);
|
|
216
223
|
var onPlay = React.useCallback(function (_ref3) {
|
|
217
224
|
var initial = _ref3.initial;
|
|
225
|
+
|
|
226
|
+
if (!hasPlayed) {
|
|
227
|
+
setHasPlayed(true);
|
|
228
|
+
}
|
|
229
|
+
|
|
218
230
|
trackScreenMedia(video, initial ? 'play' : 'resume');
|
|
219
231
|
}, [trackScreenMedia, video]);
|
|
220
232
|
var onPause = React.useCallback(function (_ref4) {
|
|
@@ -237,10 +249,10 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
237
249
|
var hasCallToAction = callToAction !== null && callToAction.active === true;
|
|
238
250
|
var hasVideo = video !== null;
|
|
239
251
|
|
|
240
|
-
var
|
|
241
|
-
|
|
242
|
-
ready =
|
|
243
|
-
setReady =
|
|
252
|
+
var _useState7 = React.useState(hasVideo),
|
|
253
|
+
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
254
|
+
ready = _useState8[0],
|
|
255
|
+
setReady = _useState8[1]; // useState(!hasVideo);
|
|
244
256
|
|
|
245
257
|
|
|
246
258
|
var transitionPlaying = current && ready;
|
|
@@ -316,7 +328,7 @@ var VideoScreen = function VideoScreen(_ref) {
|
|
|
316
328
|
left: resizedVideoLeft,
|
|
317
329
|
top: resizedVideoTop
|
|
318
330
|
}
|
|
319
|
-
},
|
|
331
|
+
}, shouldDisplayPoster ? /*#__PURE__*/React__default["default"].createElement(Image__default["default"], {
|
|
320
332
|
className: styles.image,
|
|
321
333
|
media: finalThumbnail,
|
|
322
334
|
width: resizedVideoWidth,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/screen-video",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.191",
|
|
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.
|
|
54
|
-
"@micromag/element-background": "^0.3.
|
|
55
|
-
"@micromag/element-call-to-action": "^0.3.
|
|
56
|
-
"@micromag/element-closed-captions": "^0.3.
|
|
57
|
-
"@micromag/element-container": "^0.3.
|
|
58
|
-
"@micromag/element-image": "^0.3.
|
|
59
|
-
"@micromag/element-media-controls": "^0.3.
|
|
60
|
-
"@micromag/element-video": "^0.3.
|
|
61
|
-
"@micromag/transforms": "^0.3.
|
|
53
|
+
"@micromag/core": "^0.3.190",
|
|
54
|
+
"@micromag/element-background": "^0.3.190",
|
|
55
|
+
"@micromag/element-call-to-action": "^0.3.190",
|
|
56
|
+
"@micromag/element-closed-captions": "^0.3.190",
|
|
57
|
+
"@micromag/element-container": "^0.3.190",
|
|
58
|
+
"@micromag/element-image": "^0.3.190",
|
|
59
|
+
"@micromag/element-media-controls": "^0.3.190",
|
|
60
|
+
"@micromag/element-video": "^0.3.190",
|
|
61
|
+
"@micromag/transforms": "^0.3.190",
|
|
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": "
|
|
71
|
+
"gitHead": "1b0a2f385defa01c95d01bd67f8e2bfc54186778"
|
|
72
72
|
}
|