@micromag/core 0.3.156 → 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/hooks.js +70 -34
- package/lib/hooks.js +70 -34
- package/package.json +2 -2
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
|
};
|
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
|
};
|
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
|
}
|