@micromag/core 0.4.63 → 0.4.65
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/hooks.d.ts +4 -4
- package/es/hooks.js +22 -18
- package/lib/hooks.js +22 -18
- package/package.json +2 -2
package/es/hooks.d.ts
CHANGED
|
@@ -153,12 +153,12 @@ declare const useMediaBuffering: (mediaElement?: any, interval?: number) => {
|
|
|
153
153
|
buffering: boolean;
|
|
154
154
|
};
|
|
155
155
|
|
|
156
|
-
declare const useMediaState: (mediaElement?:
|
|
156
|
+
declare const useMediaState: (mediaElement?: HTMLMediaElement | null, { playing: wantedPlaying, muted: wantedMuted }?: {
|
|
157
157
|
playing?: boolean;
|
|
158
158
|
muted?: boolean;
|
|
159
159
|
}) => {
|
|
160
160
|
playing: boolean;
|
|
161
|
-
muted:
|
|
161
|
+
muted: boolean;
|
|
162
162
|
buffering: boolean;
|
|
163
163
|
};
|
|
164
164
|
|
|
@@ -180,8 +180,8 @@ declare function useMediaLoad(element: any, { preload, shouldLoad }?: {
|
|
|
180
180
|
|
|
181
181
|
declare function useMediaProgress(media?: any, options?: any): number;
|
|
182
182
|
|
|
183
|
-
declare function useMediaReady(element:
|
|
184
|
-
id?:
|
|
183
|
+
declare function useMediaReady(element: HTMLMediaElement | null, { id }?: {
|
|
184
|
+
id?: string | null;
|
|
185
185
|
}): boolean;
|
|
186
186
|
|
|
187
187
|
declare function useMediaTimestampOffset(element: any, { attributeName }?: {
|
package/es/hooks.js
CHANGED
|
@@ -15,12 +15,12 @@ import isArray from 'lodash/isArray';
|
|
|
15
15
|
import isObject from 'lodash/isObject';
|
|
16
16
|
import raf from 'raf';
|
|
17
17
|
import createDebug from 'debug';
|
|
18
|
-
import isString from 'lodash/isString';
|
|
19
18
|
import { useScreensManager, useFieldsManager, useTracking, useScreen } from '@micromag/core/contexts';
|
|
20
19
|
import isEmpty from 'lodash/isEmpty';
|
|
21
20
|
import { useWindowSize } from '@folklore/hooks';
|
|
22
21
|
import { match } from 'css-mediaquery';
|
|
23
22
|
import dayjs from 'dayjs';
|
|
23
|
+
import isString from 'lodash/isString';
|
|
24
24
|
import { useIntl } from 'react-intl';
|
|
25
25
|
import clamp from 'lodash/clamp';
|
|
26
26
|
|
|
@@ -1358,10 +1358,11 @@ var useMediaState = function useMediaState() {
|
|
|
1358
1358
|
wantedPlaying = _ref$playing === void 0 ? false : _ref$playing,
|
|
1359
1359
|
_ref$muted = _ref.muted,
|
|
1360
1360
|
wantedMuted = _ref$muted === void 0 ? false : _ref$muted;
|
|
1361
|
+
var src = mediaElement !== null ? mediaElement.currentSrc || mediaElement.src : null;
|
|
1361
1362
|
var debug = useMemo(function () {
|
|
1362
|
-
var mediaKey =
|
|
1363
|
+
var mediaKey = src !== null ? src.split('/')[src.split('/').length - 1].split('#')[0] || null : null;
|
|
1363
1364
|
return createDebug(mediaKey !== null ? "micromag:media:".concat(mediaKey) : 'micromag:media');
|
|
1364
|
-
}, [
|
|
1365
|
+
}, [src]);
|
|
1365
1366
|
var _useState = useState(wantedPlaying),
|
|
1366
1367
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1367
1368
|
playing = _useState2[0],
|
|
@@ -1391,20 +1392,20 @@ var useMediaState = function useMediaState() {
|
|
|
1391
1392
|
wantedMuted: wantedMuted
|
|
1392
1393
|
});
|
|
1393
1394
|
}
|
|
1394
|
-
}, [mediaElement, debug, wantedPlaying, wantedMuted]);
|
|
1395
|
+
}, [mediaElement, src, debug, wantedPlaying, wantedMuted]);
|
|
1395
1396
|
useEffect(function () {
|
|
1396
1397
|
if (mediaElement === null) {
|
|
1397
1398
|
return function () {};
|
|
1398
1399
|
}
|
|
1399
1400
|
function onBufferingEvent(e) {
|
|
1400
1401
|
// networkstate
|
|
1401
|
-
if (mediaElement.networkState === mediaElement.NETWORK_LOADING) {
|
|
1402
|
+
if (mediaElement !== null && mediaElement.networkState === mediaElement.NETWORK_LOADING) {
|
|
1402
1403
|
debug('onBufferingEvent: NETWORK_LOADING');
|
|
1403
1404
|
setBuffering(true);
|
|
1404
1405
|
}
|
|
1405
1406
|
|
|
1406
1407
|
// readystate
|
|
1407
|
-
if (mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
|
|
1408
|
+
if (mediaElement !== null && mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
|
|
1408
1409
|
debug('onBufferingEvent: HAVE_FUTURE_DATA');
|
|
1409
1410
|
setBuffering(true);
|
|
1410
1411
|
}
|
|
@@ -1468,7 +1469,7 @@ var useMediaState = function useMediaState() {
|
|
|
1468
1469
|
mediaElement.removeEventListener('ended', onEnded);
|
|
1469
1470
|
mediaElement.removeEventListener('volumechange', onVolumeChange);
|
|
1470
1471
|
};
|
|
1471
|
-
}, [mediaElement, debug]);
|
|
1472
|
+
}, [mediaElement, debug, src]);
|
|
1472
1473
|
return {
|
|
1473
1474
|
playing: playing,
|
|
1474
1475
|
muted: muted,
|
|
@@ -1773,10 +1774,10 @@ function useMediaReady(element) {
|
|
|
1773
1774
|
}
|
|
1774
1775
|
function updateReady() {
|
|
1775
1776
|
var currentReady = ready;
|
|
1776
|
-
if (element.readyState > 0 && !ready) {
|
|
1777
|
+
if (element !== null && element.readyState > 0 && !ready) {
|
|
1777
1778
|
setReady(true);
|
|
1778
1779
|
currentReady = true;
|
|
1779
|
-
} else if (ready && element.readyState === 0) {
|
|
1780
|
+
} else if (ready && element !== null && element.readyState === 0) {
|
|
1780
1781
|
setReady(false);
|
|
1781
1782
|
currentReady = false;
|
|
1782
1783
|
}
|
|
@@ -1784,17 +1785,20 @@ function useMediaReady(element) {
|
|
|
1784
1785
|
return currentReady;
|
|
1785
1786
|
}
|
|
1786
1787
|
var currentReady = updateReady();
|
|
1787
|
-
if (
|
|
1788
|
-
|
|
1789
|
-
element.addEventListener('canplay', updateReady);
|
|
1790
|
-
element.addEventListener('canplaythrough', updateReady);
|
|
1788
|
+
if (currentReady) {
|
|
1789
|
+
return function () {};
|
|
1791
1790
|
}
|
|
1791
|
+
element.addEventListener('loadstart', updateReady);
|
|
1792
|
+
element.addEventListener('loadeddata', updateReady);
|
|
1793
|
+
element.addEventListener('loadedmetadata', updateReady);
|
|
1794
|
+
element.addEventListener('canplay', updateReady);
|
|
1795
|
+
element.addEventListener('canplaythrough', updateReady);
|
|
1792
1796
|
return function () {
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1797
|
+
element.removeEventListener('loadstart', updateReady);
|
|
1798
|
+
element.removeEventListener('loadeddata', updateReady);
|
|
1799
|
+
element.removeEventListener('loadedmetadata', updateReady);
|
|
1800
|
+
element.removeEventListener('canplay', updateReady);
|
|
1801
|
+
element.removeEventListener('canplaythrough', updateReady);
|
|
1798
1802
|
};
|
|
1799
1803
|
}, [element, id]);
|
|
1800
1804
|
return realReady.current;
|
package/lib/hooks.js
CHANGED
|
@@ -17,12 +17,12 @@ var isArray = require('lodash/isArray');
|
|
|
17
17
|
var isObject = require('lodash/isObject');
|
|
18
18
|
var raf = require('raf');
|
|
19
19
|
var createDebug = require('debug');
|
|
20
|
-
var isString = require('lodash/isString');
|
|
21
20
|
var contexts = require('@micromag/core/contexts');
|
|
22
21
|
var isEmpty = require('lodash/isEmpty');
|
|
23
22
|
var hooks = require('@folklore/hooks');
|
|
24
23
|
var cssMediaquery = require('css-mediaquery');
|
|
25
24
|
var dayjs = require('dayjs');
|
|
25
|
+
var isString = require('lodash/isString');
|
|
26
26
|
var reactIntl = require('react-intl');
|
|
27
27
|
var clamp = require('lodash/clamp');
|
|
28
28
|
|
|
@@ -1360,10 +1360,11 @@ var useMediaState = function useMediaState() {
|
|
|
1360
1360
|
wantedPlaying = _ref$playing === void 0 ? false : _ref$playing,
|
|
1361
1361
|
_ref$muted = _ref.muted,
|
|
1362
1362
|
wantedMuted = _ref$muted === void 0 ? false : _ref$muted;
|
|
1363
|
+
var src = mediaElement !== null ? mediaElement.currentSrc || mediaElement.src : null;
|
|
1363
1364
|
var debug = react.useMemo(function () {
|
|
1364
|
-
var mediaKey =
|
|
1365
|
+
var mediaKey = src !== null ? src.split('/')[src.split('/').length - 1].split('#')[0] || null : null;
|
|
1365
1366
|
return createDebug(mediaKey !== null ? "micromag:media:".concat(mediaKey) : 'micromag:media');
|
|
1366
|
-
}, [
|
|
1367
|
+
}, [src]);
|
|
1367
1368
|
var _useState = react.useState(wantedPlaying),
|
|
1368
1369
|
_useState2 = _slicedToArray(_useState, 2),
|
|
1369
1370
|
playing = _useState2[0],
|
|
@@ -1393,20 +1394,20 @@ var useMediaState = function useMediaState() {
|
|
|
1393
1394
|
wantedMuted: wantedMuted
|
|
1394
1395
|
});
|
|
1395
1396
|
}
|
|
1396
|
-
}, [mediaElement, debug, wantedPlaying, wantedMuted]);
|
|
1397
|
+
}, [mediaElement, src, debug, wantedPlaying, wantedMuted]);
|
|
1397
1398
|
react.useEffect(function () {
|
|
1398
1399
|
if (mediaElement === null) {
|
|
1399
1400
|
return function () {};
|
|
1400
1401
|
}
|
|
1401
1402
|
function onBufferingEvent(e) {
|
|
1402
1403
|
// networkstate
|
|
1403
|
-
if (mediaElement.networkState === mediaElement.NETWORK_LOADING) {
|
|
1404
|
+
if (mediaElement !== null && mediaElement.networkState === mediaElement.NETWORK_LOADING) {
|
|
1404
1405
|
debug('onBufferingEvent: NETWORK_LOADING');
|
|
1405
1406
|
setBuffering(true);
|
|
1406
1407
|
}
|
|
1407
1408
|
|
|
1408
1409
|
// readystate
|
|
1409
|
-
if (mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
|
|
1410
|
+
if (mediaElement !== null && mediaElement.readyState < mediaElement.HAVE_FUTURE_DATA) {
|
|
1410
1411
|
debug('onBufferingEvent: HAVE_FUTURE_DATA');
|
|
1411
1412
|
setBuffering(true);
|
|
1412
1413
|
}
|
|
@@ -1470,7 +1471,7 @@ var useMediaState = function useMediaState() {
|
|
|
1470
1471
|
mediaElement.removeEventListener('ended', onEnded);
|
|
1471
1472
|
mediaElement.removeEventListener('volumechange', onVolumeChange);
|
|
1472
1473
|
};
|
|
1473
|
-
}, [mediaElement, debug]);
|
|
1474
|
+
}, [mediaElement, debug, src]);
|
|
1474
1475
|
return {
|
|
1475
1476
|
playing: playing,
|
|
1476
1477
|
muted: muted,
|
|
@@ -1775,10 +1776,10 @@ function useMediaReady(element) {
|
|
|
1775
1776
|
}
|
|
1776
1777
|
function updateReady() {
|
|
1777
1778
|
var currentReady = ready;
|
|
1778
|
-
if (element.readyState > 0 && !ready) {
|
|
1779
|
+
if (element !== null && element.readyState > 0 && !ready) {
|
|
1779
1780
|
setReady(true);
|
|
1780
1781
|
currentReady = true;
|
|
1781
|
-
} else if (ready && element.readyState === 0) {
|
|
1782
|
+
} else if (ready && element !== null && element.readyState === 0) {
|
|
1782
1783
|
setReady(false);
|
|
1783
1784
|
currentReady = false;
|
|
1784
1785
|
}
|
|
@@ -1786,17 +1787,20 @@ function useMediaReady(element) {
|
|
|
1786
1787
|
return currentReady;
|
|
1787
1788
|
}
|
|
1788
1789
|
var currentReady = updateReady();
|
|
1789
|
-
if (
|
|
1790
|
-
|
|
1791
|
-
element.addEventListener('canplay', updateReady);
|
|
1792
|
-
element.addEventListener('canplaythrough', updateReady);
|
|
1790
|
+
if (currentReady) {
|
|
1791
|
+
return function () {};
|
|
1793
1792
|
}
|
|
1793
|
+
element.addEventListener('loadstart', updateReady);
|
|
1794
|
+
element.addEventListener('loadeddata', updateReady);
|
|
1795
|
+
element.addEventListener('loadedmetadata', updateReady);
|
|
1796
|
+
element.addEventListener('canplay', updateReady);
|
|
1797
|
+
element.addEventListener('canplaythrough', updateReady);
|
|
1794
1798
|
return function () {
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1799
|
+
element.removeEventListener('loadstart', updateReady);
|
|
1800
|
+
element.removeEventListener('loadeddata', updateReady);
|
|
1801
|
+
element.removeEventListener('loadedmetadata', updateReady);
|
|
1802
|
+
element.removeEventListener('canplay', updateReady);
|
|
1803
|
+
element.removeEventListener('canplaythrough', updateReady);
|
|
1800
1804
|
};
|
|
1801
1805
|
}, [element, id]);
|
|
1802
1806
|
return realReady.current;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.65",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "",
|
|
6
6
|
"keywords": [
|
|
@@ -161,6 +161,6 @@
|
|
|
161
161
|
"access": "public",
|
|
162
162
|
"registry": "https://registry.npmjs.org/"
|
|
163
163
|
},
|
|
164
|
-
"gitHead": "
|
|
164
|
+
"gitHead": "33460a352e56298ae450392b04c09503ecfeae05",
|
|
165
165
|
"types": "es/index.d.ts"
|
|
166
166
|
}
|