@micromag/element-video 0.3.792 → 0.3.796

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.
Files changed (2) hide show
  1. package/es/index.js +33 -32
  2. package/package.json +4 -4
package/es/index.js CHANGED
@@ -7,17 +7,26 @@ import React, { useMemo, useRef, useState, useEffect, useCallback } from 'react'
7
7
  import { PropTypes as PropTypes$1 } from '@micromag/core';
8
8
  import { Spinner } from '@micromag/core/components';
9
9
  import { useMediaThumbnail, useMediaCurrentTime, useMediaDuration, useMediaReady, useProgressSteps } from '@micromag/core/hooks';
10
+ import { useSetting } from '@micromag/core/contexts';
10
11
  import { getMediaFilesAsArray, getVideoSupportedMimes } from '@micromag/core/utils';
11
12
 
13
+ // Disabled webm for now
14
+ // const defaultPossibleMimes = ['video/mp4', 'video/webm', 'video/ogg', 'application/vnd.apple.mpegurl'];
15
+
12
16
  function useSources(media) {
13
- var _ref = media || {},
14
- _ref$files = _ref.files,
15
- mediaFiles = _ref$files === void 0 ? null : _ref$files,
16
- _ref$metadata = _ref.metadata,
17
- metadata = _ref$metadata === void 0 ? null : _ref$metadata;
18
- var _ref2 = metadata || {},
19
- _ref2$mime = _ref2.mime,
20
- mediaMime = _ref2$mime === void 0 ? null : _ref2$mime;
17
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
18
+ _ref$possibleMimes = _ref.possibleMimes,
19
+ possibleMimes = _ref$possibleMimes === void 0 ? null : _ref$possibleMimes;
20
+ var _ref2 = media || {},
21
+ _ref2$files = _ref2.files,
22
+ mediaFiles = _ref2$files === void 0 ? null : _ref2$files,
23
+ _ref2$metadata = _ref2.metadata,
24
+ metadata = _ref2$metadata === void 0 ? null : _ref2$metadata;
25
+ var _ref3 = metadata || {},
26
+ _ref3$mime = _ref3.mime,
27
+ mediaMime = _ref3$mime === void 0 ? null : _ref3$mime;
28
+ var settingsPossibleMimes = useSetting('supportedVideoMimes');
29
+ var finalPossibleMimes = possibleMimes || settingsPossibleMimes;
21
30
  var files = useMemo(function () {
22
31
  return getMediaFilesAsArray(mediaFiles);
23
32
  }, [mediaFiles]);
@@ -25,9 +34,9 @@ function useSources(media) {
25
34
  if (files.length === 0) {
26
35
  return null;
27
36
  }
28
- var supportedMimes = getVideoSupportedMimes();
37
+ var supportedMimes = getVideoSupportedMimes(finalPossibleMimes);
29
38
  if (supportedMimes.length === 0) {
30
- supportedMimes = ['video/mp4', 'video/webm'];
39
+ supportedMimes = ['video/mp4'];
31
40
  }
32
41
  var supportedFiles = files.filter(function (file) {
33
42
  var fileHandle = file.handle || file.id;
@@ -39,27 +48,27 @@ function useSources(media) {
39
48
  var fileHandle = file.handle || file.id;
40
49
  return fileHandle !== 'original';
41
50
  });
42
- return (supportedFilesWithoutOriginal.length > 0 ? supportedFilesWithoutOriginal : supportedFiles).sort(function (_ref3, _ref4) {
43
- var _ref3$size = _ref3.size,
44
- a = _ref3$size === void 0 ? Infinity : _ref3$size;
51
+ return (supportedFilesWithoutOriginal.length > 0 ? supportedFilesWithoutOriginal : supportedFiles).sort(function (_ref4, _ref5) {
45
52
  var _ref4$size = _ref4.size,
46
- b = _ref4$size === void 0 ? Infinity : _ref4$size;
53
+ a = _ref4$size === void 0 ? Infinity : _ref4$size;
54
+ var _ref5$size = _ref5.size,
55
+ b = _ref5$size === void 0 ? Infinity : _ref5$size;
47
56
  if (a === b) {
48
57
  return 0;
49
58
  }
50
59
  return a > b ? 1 : -1;
51
60
  });
52
- }, [files]);
61
+ }, [files, finalPossibleMimes]);
53
62
 
54
63
  // @NOTE: Media is an animated image and doesn't have source files in video formats
55
- var _ref5 = files.find(function (_ref6) {
56
- var handle = _ref6.handle;
64
+ var _ref6 = files.find(function (_ref7) {
65
+ var handle = _ref7.handle;
57
66
  return handle === 'original';
58
67
  }) || {},
59
- _ref5$type = _ref5.type,
60
- originalType = _ref5$type === void 0 ? null : _ref5$type,
61
- _ref5$mime = _ref5.mime,
62
- originalMime = _ref5$mime === void 0 ? mediaMime : _ref5$mime;
68
+ _ref6$type = _ref6.type,
69
+ originalType = _ref6$type === void 0 ? null : _ref6$type,
70
+ _ref6$mime = _ref6.mime,
71
+ originalMime = _ref6$mime === void 0 ? mediaMime : _ref6$mime;
63
72
  var originalFileIsImage = originalType === 'image' || originalMime !== null && originalMime.indexOf('image/') === 0;
64
73
  return {
65
74
  sources: sources !== null && sources.length > 0 ? sources : null,
@@ -264,31 +273,23 @@ var Video = function Video(_ref) {
264
273
  }
265
274
  }, [ready, onReady]);
266
275
  var finalPreload = shouldLoad ? preload : 'none';
267
- var preloadRef = useRef(finalPreload);
268
- var hasPlayedRef = useRef(false);
269
276
  useEffect(function () {
270
277
  var _ref$current2 = _ref6.current,
271
278
  element = _ref$current2 === void 0 ? null : _ref$current2;
272
- if (element === null) {
279
+ if (element === null || mediaUrl === null) {
273
280
  return;
274
281
  }
275
282
  var isPaused = element.paused;
276
283
  if (paused && !isPaused) {
277
284
  element.pause();
278
285
  } else if (!paused && isPaused) {
279
- if (preloadRef.current === 'none') {
280
- element.load();
281
- preloadRef.current = finalPreload;
282
- }
283
- hasPlayedRef.current = true;
284
286
  element.play()["catch"](function (e) {
285
287
  if (onPlayError !== null) {
286
288
  onPlayError(e);
287
289
  }
288
290
  });
289
291
  }
290
- }, [paused, media, onPlayError]); // test media here for fun
291
-
292
+ }, [paused, media, mediaUrl, onPlayError]);
292
293
  useProgressSteps({
293
294
  currentTime: currentTime,
294
295
  duration: duration,
@@ -317,7 +318,7 @@ var Video = function Video(_ref) {
317
318
  }
318
319
  },
319
320
  src: sources === null && shouldLoad ? "".concat(mediaUrl, "#t=0.001") : null,
320
- autoPlay: autoPlay && !paused && !hasPlayedRef.current && muted,
321
+ autoPlay: autoPlay && !paused,
321
322
  loop: loop,
322
323
  muted: muted,
323
324
  poster: shouldLoad && withPoster && finalThumbnail !== null ? finalThumbnail.url || null : null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@micromag/element-video",
3
- "version": "0.3.792",
3
+ "version": "0.3.796",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [
@@ -59,8 +59,8 @@
59
59
  },
60
60
  "dependencies": {
61
61
  "@babel/runtime": "^7.13.10",
62
- "@micromag/core": "^0.3.789",
63
- "@micromag/element-closed-captions": "^0.3.789",
62
+ "@micromag/core": "^0.3.796",
63
+ "@micromag/element-closed-captions": "^0.3.796",
64
64
  "classnames": "^2.2.6",
65
65
  "hls.js": "^1.5.15",
66
66
  "lodash": "^4.17.21",
@@ -72,5 +72,5 @@
72
72
  "access": "public",
73
73
  "registry": "https://registry.npmjs.org/"
74
74
  },
75
- "gitHead": "0212271243811112db66fe3393287da15ff28384"
75
+ "gitHead": "d3bf71e5a23e09d0cd26f543fb1327ff7eb27983"
76
76
  }