@micromag/core 0.3.152 → 0.3.159
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/contexts.js +13 -1
- package/es/hooks.js +100 -48
- package/es/index.js +1 -1
- package/lib/contexts.js +13 -1
- package/lib/hooks.js +100 -48
- package/lib/index.js +1 -1
- package/package.json +2 -2
package/es/contexts.js
CHANGED
|
@@ -977,6 +977,17 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
977
977
|
var hideControls = useCallback(function () {
|
|
978
978
|
return setControlsVisible(false);
|
|
979
979
|
}, [setControlsVisible]);
|
|
980
|
+
var hasAudio = useMemo(function () {
|
|
981
|
+
if (media === null || media.tagName.toLowerCase() !== 'video') {
|
|
982
|
+
return false;
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
if (media.tagName.toLowerCase() === 'audio') {
|
|
986
|
+
return true;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
return typeof media.dataset.hasAudio !== 'undefined' ? media.dataset.hasAudio : null;
|
|
990
|
+
}, [media]);
|
|
980
991
|
var value = useMemo(function () {
|
|
981
992
|
return {
|
|
982
993
|
muted: muted,
|
|
@@ -984,6 +995,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
984
995
|
controls: controls,
|
|
985
996
|
controlsVisible: controlsVisible,
|
|
986
997
|
media: media,
|
|
998
|
+
hasAudio: hasAudio,
|
|
987
999
|
controlsTheme: controlsTheme,
|
|
988
1000
|
setMuted: setMuted,
|
|
989
1001
|
setPlaying: setPlaying,
|
|
@@ -994,7 +1006,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
994
1006
|
hideControls: hideControls,
|
|
995
1007
|
setMedia: setMedia
|
|
996
1008
|
};
|
|
997
|
-
}, [muted, playing, controls, controlsVisible, controlsTheme, media, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
|
|
1009
|
+
}, [muted, playing, controls, controlsVisible, controlsTheme, media, hasAudio, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
|
|
998
1010
|
return /*#__PURE__*/React.createElement(PlaybackContext.Provider, {
|
|
999
1011
|
value: value
|
|
1000
1012
|
}, children);
|
package/es/hooks.js
CHANGED
|
@@ -34,6 +34,7 @@ function useActivityDetector() {
|
|
|
34
34
|
detected = _useState2[0],
|
|
35
35
|
setDetected = _useState2[1];
|
|
36
36
|
|
|
37
|
+
var detectedRef = useRef(detected);
|
|
37
38
|
useEffect(function () {
|
|
38
39
|
var _ref$current = ref.current,
|
|
39
40
|
element = _ref$current === void 0 ? null : _ref$current;
|
|
@@ -44,26 +45,47 @@ function useActivityDetector() {
|
|
|
44
45
|
|
|
45
46
|
var timeout = null;
|
|
46
47
|
|
|
47
|
-
function
|
|
48
|
+
function onActivity() {
|
|
48
49
|
if (timeout !== null) {
|
|
49
50
|
clearTimeout(timeout);
|
|
50
51
|
timeout = null;
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
if (!detectedRef.current) {
|
|
55
|
+
detectedRef.current = true;
|
|
56
|
+
setDetected(true);
|
|
57
|
+
}
|
|
58
|
+
|
|
54
59
|
timeout = setTimeout(function () {
|
|
60
|
+
detectedRef.current = false;
|
|
55
61
|
setDetected(false);
|
|
56
62
|
}, timeoutDelay);
|
|
57
63
|
}
|
|
58
64
|
|
|
59
|
-
element.addEventListener('
|
|
65
|
+
element.addEventListener('keydown', onActivity);
|
|
66
|
+
element.addEventListener('mousedown', onActivity);
|
|
67
|
+
element.addEventListener('mousemove', onActivity);
|
|
68
|
+
element.addEventListener('mouseup', onActivity);
|
|
69
|
+
element.addEventListener('pointerdown', onActivity);
|
|
70
|
+
element.addEventListener('pointermove', onActivity);
|
|
71
|
+
element.addEventListener('pointerup', onActivity);
|
|
72
|
+
element.addEventListener('touchmove', onActivity);
|
|
73
|
+
element.addEventListener('touchstart', onActivity);
|
|
60
74
|
return function () {
|
|
61
75
|
if (timeout !== null) {
|
|
62
76
|
clearTimeout(timeout);
|
|
63
77
|
timeout = null;
|
|
64
78
|
}
|
|
65
79
|
|
|
66
|
-
element.removeEventListener('
|
|
80
|
+
element.removeEventListener('keydown', onActivity);
|
|
81
|
+
element.removeEventListener('mousedown', onActivity);
|
|
82
|
+
element.removeEventListener('mousemove', onActivity);
|
|
83
|
+
element.removeEventListener('mouseup', onActivity);
|
|
84
|
+
element.removeEventListener('pointerdown', onActivity);
|
|
85
|
+
element.removeEventListener('pointermove', onActivity);
|
|
86
|
+
element.removeEventListener('pointerup', onActivity);
|
|
87
|
+
element.removeEventListener('touchmove', onActivity);
|
|
88
|
+
element.removeEventListener('touchstart', onActivity);
|
|
67
89
|
};
|
|
68
90
|
}, [disabled, timeoutDelay]);
|
|
69
91
|
return {
|
|
@@ -1165,47 +1187,54 @@ function useMediaCurrentTime(element) {
|
|
|
1165
1187
|
setCurrentTime = _useState2[1];
|
|
1166
1188
|
|
|
1167
1189
|
var realCurrentTime = useRef(currentTime);
|
|
1168
|
-
var
|
|
1169
|
-
var
|
|
1190
|
+
var finalId = id || element;
|
|
1191
|
+
var lastIdRef = useRef(finalId);
|
|
1192
|
+
var idChanged = lastIdRef.current !== finalId;
|
|
1170
1193
|
|
|
1171
1194
|
if (idChanged) {
|
|
1172
|
-
realCurrentTime.current = 0;
|
|
1173
|
-
lastIdRef.current =
|
|
1195
|
+
realCurrentTime.current = element !== null ? element.currentTime || 0 : 0;
|
|
1196
|
+
lastIdRef.current = finalId;
|
|
1174
1197
|
} // Check time update
|
|
1175
1198
|
|
|
1176
1199
|
|
|
1177
1200
|
useEffect(function () {
|
|
1178
|
-
if (
|
|
1201
|
+
if (element === null) {
|
|
1179
1202
|
return function () {};
|
|
1180
1203
|
}
|
|
1181
1204
|
|
|
1182
|
-
|
|
1205
|
+
function updateTime() {
|
|
1206
|
+
var time = element.currentTime;
|
|
1183
1207
|
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1208
|
+
if (time !== realCurrentTime.current) {
|
|
1209
|
+
realCurrentTime.current = time;
|
|
1210
|
+
setCurrentTime(time);
|
|
1211
|
+
|
|
1212
|
+
if (customOnUpdate !== null) {
|
|
1213
|
+
customOnUpdate(time);
|
|
1214
|
+
}
|
|
1187
1215
|
}
|
|
1188
1216
|
|
|
1189
|
-
|
|
1190
|
-
|
|
1217
|
+
return time;
|
|
1218
|
+
}
|
|
1191
1219
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
}
|
|
1195
|
-
}
|
|
1220
|
+
if (disabled) {
|
|
1221
|
+
updateTime();
|
|
1222
|
+
return function () {};
|
|
1223
|
+
}
|
|
1196
1224
|
|
|
1197
|
-
var
|
|
1198
|
-
var time = element.currentTime;
|
|
1225
|
+
var timeout = null;
|
|
1199
1226
|
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1227
|
+
function loop() {
|
|
1228
|
+
var time = updateTime();
|
|
1229
|
+
var remainingTime = Math.floor((element.duration - time) * 1000);
|
|
1230
|
+
timeout = setTimeout(loop, Math.min(updateInterval, remainingTime));
|
|
1231
|
+
}
|
|
1232
|
+
|
|
1233
|
+
loop();
|
|
1206
1234
|
return function () {
|
|
1207
|
-
|
|
1208
|
-
|
|
1235
|
+
if (timeout !== null) {
|
|
1236
|
+
clearInterval(timeout);
|
|
1237
|
+
}
|
|
1209
1238
|
};
|
|
1210
1239
|
}, [id, element, setCurrentTime, disabled, updateInterval]);
|
|
1211
1240
|
return realCurrentTime.current;
|
|
@@ -1222,12 +1251,13 @@ function useMediaDuration(element) {
|
|
|
1222
1251
|
setDuration = _useState2[1];
|
|
1223
1252
|
|
|
1224
1253
|
var realDuration = useRef(duration);
|
|
1225
|
-
var
|
|
1226
|
-
var
|
|
1254
|
+
var finalId = id || element;
|
|
1255
|
+
var lastIdRef = useRef(finalId);
|
|
1256
|
+
var idChanged = lastIdRef.current !== finalId;
|
|
1227
1257
|
|
|
1228
1258
|
if (idChanged) {
|
|
1229
1259
|
realDuration.current = element !== null ? element.duration || 0 : 0;
|
|
1230
|
-
lastIdRef.current =
|
|
1260
|
+
lastIdRef.current = finalId;
|
|
1231
1261
|
}
|
|
1232
1262
|
|
|
1233
1263
|
useEffect(function () {
|
|
@@ -1236,14 +1266,20 @@ function useMediaDuration(element) {
|
|
|
1236
1266
|
}
|
|
1237
1267
|
|
|
1238
1268
|
function updateDuration() {
|
|
1239
|
-
|
|
1240
|
-
|
|
1269
|
+
var newDuration = element.duration || 0;
|
|
1270
|
+
|
|
1271
|
+
if (newDuration !== realDuration.current) {
|
|
1272
|
+
realDuration.current = newDuration;
|
|
1273
|
+
setDuration(newDuration);
|
|
1274
|
+
}
|
|
1241
1275
|
}
|
|
1242
1276
|
|
|
1243
1277
|
updateDuration();
|
|
1278
|
+
element.addEventListener('canplay', updateDuration);
|
|
1244
1279
|
element.addEventListener('loadedmetadata', updateDuration);
|
|
1245
1280
|
element.addEventListener('durationchange', updateDuration);
|
|
1246
1281
|
return function () {
|
|
1282
|
+
element.removeEventListener('canplay', updateDuration);
|
|
1247
1283
|
element.removeEventListener('loadedmetadata', updateDuration);
|
|
1248
1284
|
element.removeEventListener('durationchange', updateDuration);
|
|
1249
1285
|
};
|
|
@@ -1357,25 +1393,41 @@ var useMediasParser = function useMediasParser() {
|
|
|
1357
1393
|
|
|
1358
1394
|
function useMediaThumbnail(media) {
|
|
1359
1395
|
var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1396
|
+
var thumbnail = useMemo(function () {
|
|
1397
|
+
if (isObject(file)) {
|
|
1398
|
+
return file;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
var _ref = media || {},
|
|
1402
|
+
_ref$thumbnail_url = _ref.thumbnail_url,
|
|
1403
|
+
defaultThumbnailUrl = _ref$thumbnail_url === void 0 ? null : _ref$thumbnail_url,
|
|
1404
|
+
_ref$files = _ref.files,
|
|
1405
|
+
files = _ref$files === void 0 ? null : _ref$files,
|
|
1406
|
+
_ref$metadata = _ref.metadata,
|
|
1407
|
+
metadata = _ref$metadata === void 0 ? null : _ref$metadata;
|
|
1360
1408
|
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
_ref$files = _ref.files,
|
|
1365
|
-
files = _ref$files === void 0 ? null : _ref$files;
|
|
1409
|
+
var _ref2 = metadata || {},
|
|
1410
|
+
mediaWidth = _ref2.width,
|
|
1411
|
+
mediaHeight = _ref2.height;
|
|
1366
1412
|
|
|
1367
|
-
var thumbnailUrl = useMemo(function () {
|
|
1368
1413
|
var filesArray = getMediaFilesAsArray(files) || [];
|
|
1369
1414
|
|
|
1370
|
-
var
|
|
1371
|
-
var handle =
|
|
1415
|
+
var _ref3 = (file !== null ? filesArray.find(function (_ref4) {
|
|
1416
|
+
var handle = _ref4.handle;
|
|
1372
1417
|
return handle === file;
|
|
1373
|
-
}) || null :
|
|
1374
|
-
url =
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1418
|
+
}) || null : null) || {},
|
|
1419
|
+
_ref3$url = _ref3.url,
|
|
1420
|
+
url = _ref3$url === void 0 ? null : _ref3$url;
|
|
1421
|
+
|
|
1422
|
+
return url !== null || defaultThumbnailUrl !== null ? {
|
|
1423
|
+
url: url || defaultThumbnailUrl,
|
|
1424
|
+
metadata: {
|
|
1425
|
+
width: mediaWidth,
|
|
1426
|
+
height: mediaHeight
|
|
1427
|
+
}
|
|
1428
|
+
} : null;
|
|
1429
|
+
}, [media, file]);
|
|
1430
|
+
return thumbnail;
|
|
1379
1431
|
}
|
|
1380
1432
|
|
|
1381
1433
|
function useMediaWaveform(media) {
|
package/es/index.js
CHANGED
|
@@ -1358,7 +1358,7 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1358
1358
|
var newValue;
|
|
1359
1359
|
|
|
1360
1360
|
if (patternMatch) {
|
|
1361
|
-
newValue = isObject(value) ? value : medias[value] ||
|
|
1361
|
+
newValue = isObject(value) ? value : medias[value] || value;
|
|
1362
1362
|
} else {
|
|
1363
1363
|
newValue = isObject(value) || isArray(value) ? MediasParser.replacePathsWithMedias(value, medias, patterns, path) : value;
|
|
1364
1364
|
}
|
package/lib/contexts.js
CHANGED
|
@@ -1012,6 +1012,17 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
1012
1012
|
var hideControls = React.useCallback(function () {
|
|
1013
1013
|
return setControlsVisible(false);
|
|
1014
1014
|
}, [setControlsVisible]);
|
|
1015
|
+
var hasAudio = React.useMemo(function () {
|
|
1016
|
+
if (media === null || media.tagName.toLowerCase() !== 'video') {
|
|
1017
|
+
return false;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
if (media.tagName.toLowerCase() === 'audio') {
|
|
1021
|
+
return true;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
return typeof media.dataset.hasAudio !== 'undefined' ? media.dataset.hasAudio : null;
|
|
1025
|
+
}, [media]);
|
|
1015
1026
|
var value = React.useMemo(function () {
|
|
1016
1027
|
return {
|
|
1017
1028
|
muted: muted,
|
|
@@ -1019,6 +1030,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
1019
1030
|
controls: controls,
|
|
1020
1031
|
controlsVisible: controlsVisible,
|
|
1021
1032
|
media: media,
|
|
1033
|
+
hasAudio: hasAudio,
|
|
1022
1034
|
controlsTheme: controlsTheme,
|
|
1023
1035
|
setMuted: setMuted,
|
|
1024
1036
|
setPlaying: setPlaying,
|
|
@@ -1029,7 +1041,7 @@ var PlaybackProvider = function PlaybackProvider(_ref) {
|
|
|
1029
1041
|
hideControls: hideControls,
|
|
1030
1042
|
setMedia: setMedia
|
|
1031
1043
|
};
|
|
1032
|
-
}, [muted, playing, controls, controlsVisible, controlsTheme, media, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
|
|
1044
|
+
}, [muted, playing, controls, controlsVisible, controlsTheme, media, hasAudio, setMuted, setPlaying, finalSetControls, finalSetControlsTheme, setControlsVisible, setControlsTheme, showControls, hideControls, setMedia]);
|
|
1033
1045
|
return /*#__PURE__*/React__default["default"].createElement(PlaybackContext.Provider, {
|
|
1034
1046
|
value: value
|
|
1035
1047
|
}, children);
|
package/lib/hooks.js
CHANGED
|
@@ -71,6 +71,7 @@ function useActivityDetector() {
|
|
|
71
71
|
detected = _useState2[0],
|
|
72
72
|
setDetected = _useState2[1];
|
|
73
73
|
|
|
74
|
+
var detectedRef = react.useRef(detected);
|
|
74
75
|
react.useEffect(function () {
|
|
75
76
|
var _ref$current = ref.current,
|
|
76
77
|
element = _ref$current === void 0 ? null : _ref$current;
|
|
@@ -81,26 +82,47 @@ function useActivityDetector() {
|
|
|
81
82
|
|
|
82
83
|
var timeout = null;
|
|
83
84
|
|
|
84
|
-
function
|
|
85
|
+
function onActivity() {
|
|
85
86
|
if (timeout !== null) {
|
|
86
87
|
clearTimeout(timeout);
|
|
87
88
|
timeout = null;
|
|
88
89
|
}
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
if (!detectedRef.current) {
|
|
92
|
+
detectedRef.current = true;
|
|
93
|
+
setDetected(true);
|
|
94
|
+
}
|
|
95
|
+
|
|
91
96
|
timeout = setTimeout(function () {
|
|
97
|
+
detectedRef.current = false;
|
|
92
98
|
setDetected(false);
|
|
93
99
|
}, timeoutDelay);
|
|
94
100
|
}
|
|
95
101
|
|
|
96
|
-
element.addEventListener('
|
|
102
|
+
element.addEventListener('keydown', onActivity);
|
|
103
|
+
element.addEventListener('mousedown', onActivity);
|
|
104
|
+
element.addEventListener('mousemove', onActivity);
|
|
105
|
+
element.addEventListener('mouseup', onActivity);
|
|
106
|
+
element.addEventListener('pointerdown', onActivity);
|
|
107
|
+
element.addEventListener('pointermove', onActivity);
|
|
108
|
+
element.addEventListener('pointerup', onActivity);
|
|
109
|
+
element.addEventListener('touchmove', onActivity);
|
|
110
|
+
element.addEventListener('touchstart', onActivity);
|
|
97
111
|
return function () {
|
|
98
112
|
if (timeout !== null) {
|
|
99
113
|
clearTimeout(timeout);
|
|
100
114
|
timeout = null;
|
|
101
115
|
}
|
|
102
116
|
|
|
103
|
-
element.removeEventListener('
|
|
117
|
+
element.removeEventListener('keydown', onActivity);
|
|
118
|
+
element.removeEventListener('mousedown', onActivity);
|
|
119
|
+
element.removeEventListener('mousemove', onActivity);
|
|
120
|
+
element.removeEventListener('mouseup', onActivity);
|
|
121
|
+
element.removeEventListener('pointerdown', onActivity);
|
|
122
|
+
element.removeEventListener('pointermove', onActivity);
|
|
123
|
+
element.removeEventListener('pointerup', onActivity);
|
|
124
|
+
element.removeEventListener('touchmove', onActivity);
|
|
125
|
+
element.removeEventListener('touchstart', onActivity);
|
|
104
126
|
};
|
|
105
127
|
}, [disabled, timeoutDelay]);
|
|
106
128
|
return {
|
|
@@ -1202,47 +1224,54 @@ function useMediaCurrentTime(element) {
|
|
|
1202
1224
|
setCurrentTime = _useState2[1];
|
|
1203
1225
|
|
|
1204
1226
|
var realCurrentTime = react.useRef(currentTime);
|
|
1205
|
-
var
|
|
1206
|
-
var
|
|
1227
|
+
var finalId = id || element;
|
|
1228
|
+
var lastIdRef = react.useRef(finalId);
|
|
1229
|
+
var idChanged = lastIdRef.current !== finalId;
|
|
1207
1230
|
|
|
1208
1231
|
if (idChanged) {
|
|
1209
|
-
realCurrentTime.current = 0;
|
|
1210
|
-
lastIdRef.current =
|
|
1232
|
+
realCurrentTime.current = element !== null ? element.currentTime || 0 : 0;
|
|
1233
|
+
lastIdRef.current = finalId;
|
|
1211
1234
|
} // Check time update
|
|
1212
1235
|
|
|
1213
1236
|
|
|
1214
1237
|
react.useEffect(function () {
|
|
1215
|
-
if (
|
|
1238
|
+
if (element === null) {
|
|
1216
1239
|
return function () {};
|
|
1217
1240
|
}
|
|
1218
1241
|
|
|
1219
|
-
|
|
1242
|
+
function updateTime() {
|
|
1243
|
+
var time = element.currentTime;
|
|
1220
1244
|
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1245
|
+
if (time !== realCurrentTime.current) {
|
|
1246
|
+
realCurrentTime.current = time;
|
|
1247
|
+
setCurrentTime(time);
|
|
1248
|
+
|
|
1249
|
+
if (customOnUpdate !== null) {
|
|
1250
|
+
customOnUpdate(time);
|
|
1251
|
+
}
|
|
1224
1252
|
}
|
|
1225
1253
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1254
|
+
return time;
|
|
1255
|
+
}
|
|
1228
1256
|
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
}
|
|
1232
|
-
}
|
|
1257
|
+
if (disabled) {
|
|
1258
|
+
updateTime();
|
|
1259
|
+
return function () {};
|
|
1260
|
+
}
|
|
1233
1261
|
|
|
1234
|
-
var
|
|
1235
|
-
var time = element.currentTime;
|
|
1262
|
+
var timeout = null;
|
|
1236
1263
|
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1264
|
+
function loop() {
|
|
1265
|
+
var time = updateTime();
|
|
1266
|
+
var remainingTime = Math.floor((element.duration - time) * 1000);
|
|
1267
|
+
timeout = setTimeout(loop, Math.min(updateInterval, remainingTime));
|
|
1268
|
+
}
|
|
1269
|
+
|
|
1270
|
+
loop();
|
|
1243
1271
|
return function () {
|
|
1244
|
-
|
|
1245
|
-
|
|
1272
|
+
if (timeout !== null) {
|
|
1273
|
+
clearInterval(timeout);
|
|
1274
|
+
}
|
|
1246
1275
|
};
|
|
1247
1276
|
}, [id, element, setCurrentTime, disabled, updateInterval]);
|
|
1248
1277
|
return realCurrentTime.current;
|
|
@@ -1259,12 +1288,13 @@ function useMediaDuration(element) {
|
|
|
1259
1288
|
setDuration = _useState2[1];
|
|
1260
1289
|
|
|
1261
1290
|
var realDuration = react.useRef(duration);
|
|
1262
|
-
var
|
|
1263
|
-
var
|
|
1291
|
+
var finalId = id || element;
|
|
1292
|
+
var lastIdRef = react.useRef(finalId);
|
|
1293
|
+
var idChanged = lastIdRef.current !== finalId;
|
|
1264
1294
|
|
|
1265
1295
|
if (idChanged) {
|
|
1266
1296
|
realDuration.current = element !== null ? element.duration || 0 : 0;
|
|
1267
|
-
lastIdRef.current =
|
|
1297
|
+
lastIdRef.current = finalId;
|
|
1268
1298
|
}
|
|
1269
1299
|
|
|
1270
1300
|
react.useEffect(function () {
|
|
@@ -1273,14 +1303,20 @@ function useMediaDuration(element) {
|
|
|
1273
1303
|
}
|
|
1274
1304
|
|
|
1275
1305
|
function updateDuration() {
|
|
1276
|
-
|
|
1277
|
-
|
|
1306
|
+
var newDuration = element.duration || 0;
|
|
1307
|
+
|
|
1308
|
+
if (newDuration !== realDuration.current) {
|
|
1309
|
+
realDuration.current = newDuration;
|
|
1310
|
+
setDuration(newDuration);
|
|
1311
|
+
}
|
|
1278
1312
|
}
|
|
1279
1313
|
|
|
1280
1314
|
updateDuration();
|
|
1315
|
+
element.addEventListener('canplay', updateDuration);
|
|
1281
1316
|
element.addEventListener('loadedmetadata', updateDuration);
|
|
1282
1317
|
element.addEventListener('durationchange', updateDuration);
|
|
1283
1318
|
return function () {
|
|
1319
|
+
element.removeEventListener('canplay', updateDuration);
|
|
1284
1320
|
element.removeEventListener('loadedmetadata', updateDuration);
|
|
1285
1321
|
element.removeEventListener('durationchange', updateDuration);
|
|
1286
1322
|
};
|
|
@@ -1394,25 +1430,41 @@ var useMediasParser = function useMediasParser() {
|
|
|
1394
1430
|
|
|
1395
1431
|
function useMediaThumbnail(media) {
|
|
1396
1432
|
var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1433
|
+
var thumbnail = react.useMemo(function () {
|
|
1434
|
+
if (isObject__default["default"](file)) {
|
|
1435
|
+
return file;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
var _ref = media || {},
|
|
1439
|
+
_ref$thumbnail_url = _ref.thumbnail_url,
|
|
1440
|
+
defaultThumbnailUrl = _ref$thumbnail_url === void 0 ? null : _ref$thumbnail_url,
|
|
1441
|
+
_ref$files = _ref.files,
|
|
1442
|
+
files = _ref$files === void 0 ? null : _ref$files,
|
|
1443
|
+
_ref$metadata = _ref.metadata,
|
|
1444
|
+
metadata = _ref$metadata === void 0 ? null : _ref$metadata;
|
|
1397
1445
|
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
_ref$files = _ref.files,
|
|
1402
|
-
files = _ref$files === void 0 ? null : _ref$files;
|
|
1446
|
+
var _ref2 = metadata || {},
|
|
1447
|
+
mediaWidth = _ref2.width,
|
|
1448
|
+
mediaHeight = _ref2.height;
|
|
1403
1449
|
|
|
1404
|
-
var thumbnailUrl = react.useMemo(function () {
|
|
1405
1450
|
var filesArray = utils.getMediaFilesAsArray(files) || [];
|
|
1406
1451
|
|
|
1407
|
-
var
|
|
1408
|
-
var handle =
|
|
1452
|
+
var _ref3 = (file !== null ? filesArray.find(function (_ref4) {
|
|
1453
|
+
var handle = _ref4.handle;
|
|
1409
1454
|
return handle === file;
|
|
1410
|
-
}) || null :
|
|
1411
|
-
url =
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1455
|
+
}) || null : null) || {},
|
|
1456
|
+
_ref3$url = _ref3.url,
|
|
1457
|
+
url = _ref3$url === void 0 ? null : _ref3$url;
|
|
1458
|
+
|
|
1459
|
+
return url !== null || defaultThumbnailUrl !== null ? {
|
|
1460
|
+
url: url || defaultThumbnailUrl,
|
|
1461
|
+
metadata: {
|
|
1462
|
+
width: mediaWidth,
|
|
1463
|
+
height: mediaHeight
|
|
1464
|
+
}
|
|
1465
|
+
} : null;
|
|
1466
|
+
}, [media, file]);
|
|
1467
|
+
return thumbnail;
|
|
1416
1468
|
}
|
|
1417
1469
|
|
|
1418
1470
|
function useMediaWaveform(media) {
|
package/lib/index.js
CHANGED
|
@@ -1385,7 +1385,7 @@ var MediasParser = /*#__PURE__*/function () {
|
|
|
1385
1385
|
var newValue;
|
|
1386
1386
|
|
|
1387
1387
|
if (patternMatch) {
|
|
1388
|
-
newValue = isObject__default["default"](value) ? value : medias[value] ||
|
|
1388
|
+
newValue = isObject__default["default"](value) ? value : medias[value] || value;
|
|
1389
1389
|
} else {
|
|
1390
1390
|
newValue = isObject__default["default"](value) || isArray__default["default"](value) ? MediasParser.replacePathsWithMedias(value, medias, patterns, path) : value;
|
|
1391
1391
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@micromag/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.159",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -132,5 +132,5 @@
|
|
|
132
132
|
"publishConfig": {
|
|
133
133
|
"access": "public"
|
|
134
134
|
},
|
|
135
|
-
"gitHead": "
|
|
135
|
+
"gitHead": "685851a0877cde60bcb1c322d939e93bf2f72792"
|
|
136
136
|
}
|