@folklore/hooks 0.0.20 → 0.0.23
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/dist/cjs.js +46 -37
- package/dist/es.js +45 -36
- package/package.json +2 -2
package/dist/cjs.js
CHANGED
|
@@ -148,12 +148,14 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
148
148
|
setLoaded = _useState6[1];
|
|
149
149
|
|
|
150
150
|
var apiRef = react.useRef(typeof window.DM !== 'undefined' ? window.DM : null);
|
|
151
|
-
var elementRef = react.useRef(null);
|
|
152
|
-
var playerRef = react.useRef(null);
|
|
153
151
|
var ready = apiLoaded && playerReady;
|
|
154
152
|
var videoId = react.useMemo(function () {
|
|
155
153
|
return getVideoId(id);
|
|
156
154
|
}, [id]);
|
|
155
|
+
var elementRef = react.useRef(null);
|
|
156
|
+
var playerRef = react.useRef(null);
|
|
157
|
+
var playerElementRef = react.useRef(elementRef.current);
|
|
158
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
157
159
|
|
|
158
160
|
var _useState7 = react.useState(initialMuted),
|
|
159
161
|
_useState8 = _slicedToArray__default["default"](_useState7, 2),
|
|
@@ -190,6 +192,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
190
192
|
var canceled = false;
|
|
191
193
|
|
|
192
194
|
if (!apiLoaded && videoId !== null) {
|
|
195
|
+
debug$3('Load API');
|
|
193
196
|
services.loadDailymotion().then(function (api) {
|
|
194
197
|
if (!canceled) {
|
|
195
198
|
apiRef.current = api;
|
|
@@ -230,9 +233,10 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
230
233
|
var player = currentPlayer;
|
|
231
234
|
|
|
232
235
|
if (player !== null) {
|
|
233
|
-
player.load(
|
|
236
|
+
player.load(videoId, {
|
|
234
237
|
params: playerParams
|
|
235
238
|
});
|
|
239
|
+
debug$3('Load video [ID: %s]', videoId);
|
|
236
240
|
} else {
|
|
237
241
|
player = DM.player(element, {
|
|
238
242
|
video: videoId,
|
|
@@ -240,13 +244,16 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
240
244
|
height: height,
|
|
241
245
|
params: playerParams
|
|
242
246
|
});
|
|
243
|
-
|
|
247
|
+
debug$3('Create player [ID: %s]', videoId);
|
|
244
248
|
}
|
|
245
249
|
|
|
246
250
|
if (!playerReady) {
|
|
247
251
|
setPlayerReady(true);
|
|
248
252
|
}
|
|
249
|
-
|
|
253
|
+
|
|
254
|
+
playerRef.current = player;
|
|
255
|
+
playerElementRef.current = element;
|
|
256
|
+
}, [apiLoaded, elementHasChanged, videoId, width, height, autoplay, muted, start, controls, queueAutoplayNext, queueEnable, sharingEnable, uiLogo, uiStartScreenInfo]);
|
|
250
257
|
react.useEffect(function () {
|
|
251
258
|
var _playerRef$current2 = playerRef.current,
|
|
252
259
|
player = _playerRef$current2 === void 0 ? null : _playerRef$current2;
|
|
@@ -260,6 +267,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
260
267
|
|
|
261
268
|
function onPlaybackReady() {
|
|
262
269
|
setLoaded(true);
|
|
270
|
+
debug$3('onPlaybackReady [ID: %s]', videoId);
|
|
263
271
|
}
|
|
264
272
|
|
|
265
273
|
function onLoadedMetadata() {
|
|
@@ -267,6 +275,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
267
275
|
duration: player.duration
|
|
268
276
|
});
|
|
269
277
|
setMetadata(currentMetadata);
|
|
278
|
+
debug$3('onLoadedMetadata [ID: %s]', videoId);
|
|
270
279
|
}
|
|
271
280
|
|
|
272
281
|
function onDurationChange() {
|
|
@@ -274,11 +283,13 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
274
283
|
duration: player.duration
|
|
275
284
|
});
|
|
276
285
|
setMetadata(currentMetadata);
|
|
286
|
+
debug$3('onDurationChange [ID: %s]', videoId);
|
|
277
287
|
}
|
|
278
288
|
|
|
279
289
|
function onVolumeChange() {
|
|
280
290
|
setMuted(player.muted);
|
|
281
291
|
setVolumeState(player.volume);
|
|
292
|
+
debug$3('onVolumeChange [ID: %s]', videoId);
|
|
282
293
|
}
|
|
283
294
|
|
|
284
295
|
function onPlay() {
|
|
@@ -288,6 +299,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
288
299
|
ended: false
|
|
289
300
|
});
|
|
290
301
|
setPlayState(currentPlayState);
|
|
302
|
+
debug$3('onPlay [ID: %s]', videoId);
|
|
291
303
|
}
|
|
292
304
|
|
|
293
305
|
function onPause() {
|
|
@@ -297,6 +309,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
297
309
|
ended: false
|
|
298
310
|
});
|
|
299
311
|
setPlayState(currentPlayState);
|
|
312
|
+
debug$3('onPause [ID: %s]', videoId);
|
|
300
313
|
}
|
|
301
314
|
|
|
302
315
|
function onEnd() {
|
|
@@ -306,6 +319,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
306
319
|
ended: true
|
|
307
320
|
});
|
|
308
321
|
setPlayState(currentPlayState);
|
|
322
|
+
debug$3('onEnd [ID: %s]', videoId);
|
|
309
323
|
}
|
|
310
324
|
|
|
311
325
|
function onPlaying() {
|
|
@@ -313,6 +327,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
313
327
|
buffering: false
|
|
314
328
|
});
|
|
315
329
|
setPlayState(currentPlayState);
|
|
330
|
+
debug$3('onPlaying [ID: %s]', videoId);
|
|
316
331
|
}
|
|
317
332
|
|
|
318
333
|
function onWaiting() {
|
|
@@ -320,6 +335,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
320
335
|
buffering: true
|
|
321
336
|
});
|
|
322
337
|
setPlayState(currentPlayState);
|
|
338
|
+
debug$3('onWaiting [ID: %s]', videoId);
|
|
323
339
|
}
|
|
324
340
|
|
|
325
341
|
function onAdStart() {
|
|
@@ -327,6 +343,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
327
343
|
adPlaying: true
|
|
328
344
|
});
|
|
329
345
|
setPlayState(currentPlayState);
|
|
346
|
+
debug$3('onAdStart [ID: %s]', videoId);
|
|
330
347
|
}
|
|
331
348
|
|
|
332
349
|
function onAdEnd() {
|
|
@@ -334,6 +351,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
334
351
|
adPlaying: false
|
|
335
352
|
});
|
|
336
353
|
setPlayState(currentPlayState);
|
|
354
|
+
debug$3('onAdEnd [ID: %s]', videoId);
|
|
337
355
|
}
|
|
338
356
|
|
|
339
357
|
player.addEventListener('playback_ready', onPlaybackReady);
|
|
@@ -409,33 +427,19 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
409
427
|
}, metadata), playState);
|
|
410
428
|
};
|
|
411
429
|
|
|
412
|
-
var
|
|
413
|
-
|
|
414
|
-
var useDocumentEvent = function useDocumentEvent(event, callback) {
|
|
415
|
-
react.useEffect(function () {
|
|
416
|
-
if (eventsManager$1 !== null && callback !== null) {
|
|
417
|
-
eventsManager$1.subscribe(event, callback);
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
return function () {
|
|
421
|
-
if (eventsManager$1 !== null && callback !== null) {
|
|
422
|
-
eventsManager$1.unsubscribe(event, callback);
|
|
423
|
-
}
|
|
424
|
-
};
|
|
425
|
-
}, [event, callback]);
|
|
426
|
-
};
|
|
430
|
+
var documentEventsManager = typeof document !== 'undefined' ? new EventsManager__default["default"](document) : null;
|
|
427
431
|
|
|
428
|
-
var
|
|
432
|
+
var windowEventsManager = typeof window !== 'undefined' ? new EventsManager__default["default"](window) : null;
|
|
429
433
|
|
|
430
434
|
var useWindowEvent = function useWindowEvent(event, callback) {
|
|
431
435
|
react.useEffect(function () {
|
|
432
|
-
if (
|
|
433
|
-
|
|
436
|
+
if (windowEventsManager !== null && callback !== null) {
|
|
437
|
+
windowEventsManager.subscribe(event, callback);
|
|
434
438
|
}
|
|
435
439
|
|
|
436
440
|
return function () {
|
|
437
|
-
if (
|
|
438
|
-
|
|
441
|
+
if (windowEventsManager !== null && callback !== null) {
|
|
442
|
+
windowEventsManager.unsubscribe(event, callback);
|
|
439
443
|
}
|
|
440
444
|
};
|
|
441
445
|
}, [event, callback]);
|
|
@@ -952,6 +956,7 @@ function useYouTubePlayer(id) {
|
|
|
952
956
|
var elementRef = react.useRef(null);
|
|
953
957
|
var playerRef = react.useRef(null);
|
|
954
958
|
var playerElementRef = react.useRef(elementRef.current);
|
|
959
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
955
960
|
var videoId = react.useMemo(function () {
|
|
956
961
|
return getVideoId(id);
|
|
957
962
|
}, [id]);
|
|
@@ -989,6 +994,7 @@ function useYouTubePlayer(id) {
|
|
|
989
994
|
var canceled = false;
|
|
990
995
|
|
|
991
996
|
if (!apiLoaded && videoId !== null) {
|
|
997
|
+
debug$1('Load API');
|
|
992
998
|
services.loadYouTube().then(function (api) {
|
|
993
999
|
if (!canceled) {
|
|
994
1000
|
apiRef.current = api;
|
|
@@ -1054,7 +1060,7 @@ function useYouTubePlayer(id) {
|
|
|
1054
1060
|
debug$1('iFrame switched');
|
|
1055
1061
|
destroyPlayer();
|
|
1056
1062
|
}
|
|
1057
|
-
}, [
|
|
1063
|
+
}, [elementHasChanged]); // Create player
|
|
1058
1064
|
|
|
1059
1065
|
react.useEffect(function () {
|
|
1060
1066
|
var _apiRef$current = apiRef.current,
|
|
@@ -1076,7 +1082,6 @@ function useYouTubePlayer(id) {
|
|
|
1076
1082
|
player.loadVideoById(videoId);
|
|
1077
1083
|
} else {
|
|
1078
1084
|
debug$1('Create player [ID: %s]', videoId);
|
|
1079
|
-
var iframe = elementRef.current;
|
|
1080
1085
|
|
|
1081
1086
|
var onReady = function onReady(_ref2) {
|
|
1082
1087
|
var target = _ref2.target;
|
|
@@ -1122,7 +1127,7 @@ function useYouTubePlayer(id) {
|
|
|
1122
1127
|
debug$1('onStateChange %s [ID: %s]', stateLabel, videoId);
|
|
1123
1128
|
};
|
|
1124
1129
|
|
|
1125
|
-
player = new YT.Player(
|
|
1130
|
+
player = new YT.Player(element, {
|
|
1126
1131
|
videoId: videoId,
|
|
1127
1132
|
playerVars: {
|
|
1128
1133
|
controls: controls,
|
|
@@ -1138,11 +1143,11 @@ function useYouTubePlayer(id) {
|
|
|
1138
1143
|
onStateChange: onStateChange
|
|
1139
1144
|
}
|
|
1140
1145
|
});
|
|
1141
|
-
playerElementRef.current = iframe;
|
|
1142
1146
|
}
|
|
1143
1147
|
|
|
1144
1148
|
playerRef.current = player;
|
|
1145
|
-
|
|
1149
|
+
playerElementRef.current = element;
|
|
1150
|
+
}, [apiLoaded, videoId, elementHasChanged, setPlayState, setReady, setMetadata, destroyPlayer]);
|
|
1146
1151
|
var playing = playState.playing;
|
|
1147
1152
|
var getCurrentTime = react.useCallback(function (p) {
|
|
1148
1153
|
return p.getCurrentTime();
|
|
@@ -1217,6 +1222,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1217
1222
|
var apiRef = react.useRef(null);
|
|
1218
1223
|
var elementRef = react.useRef(null);
|
|
1219
1224
|
var playerRef = react.useRef(null);
|
|
1225
|
+
var playerElementRef = react.useRef(elementRef.current);
|
|
1226
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
1220
1227
|
var videoId = react.useMemo(function () {
|
|
1221
1228
|
return getVideoId(id);
|
|
1222
1229
|
}, [id]);
|
|
@@ -1260,6 +1267,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1260
1267
|
var canceled = false;
|
|
1261
1268
|
|
|
1262
1269
|
if (!apiLoaded && id !== null) {
|
|
1270
|
+
debug('Load API');
|
|
1263
1271
|
services.loadVimeo().then(function (api) {
|
|
1264
1272
|
if (!canceled) {
|
|
1265
1273
|
apiRef.current = api;
|
|
@@ -1314,7 +1322,6 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1314
1322
|
playerRef.current = null;
|
|
1315
1323
|
}
|
|
1316
1324
|
}, []);
|
|
1317
|
-
var playerElementRef = react.useRef(elementRef.current);
|
|
1318
1325
|
react.useEffect(function () {
|
|
1319
1326
|
var currentPlayer = playerRef.current;
|
|
1320
1327
|
|
|
@@ -1322,7 +1329,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1322
1329
|
debug('iFrame switched');
|
|
1323
1330
|
destroyVideo();
|
|
1324
1331
|
}
|
|
1325
|
-
}); // Create player
|
|
1332
|
+
}, [elementHasChanged]); // Create player
|
|
1326
1333
|
|
|
1327
1334
|
react.useEffect(function () {
|
|
1328
1335
|
var _apiRef$current = apiRef.current,
|
|
@@ -1355,7 +1362,6 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1355
1362
|
}).catch(function (e) {
|
|
1356
1363
|
debug('ERROR: %o', e);
|
|
1357
1364
|
});
|
|
1358
|
-
playerElementRef.current = element;
|
|
1359
1365
|
} else {
|
|
1360
1366
|
debug('Load video [ID: %s]', videoId);
|
|
1361
1367
|
player.loadVideo(videoId).catch(function (e) {
|
|
@@ -1364,7 +1370,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1364
1370
|
}
|
|
1365
1371
|
|
|
1366
1372
|
playerRef.current = player;
|
|
1367
|
-
|
|
1373
|
+
playerElementRef.current = element;
|
|
1374
|
+
}, [apiLoaded, videoId, elementHasChanged, setReady, destroyVideo, setLoaded]); // Bind player events
|
|
1368
1375
|
|
|
1369
1376
|
react.useEffect(function () {
|
|
1370
1377
|
var player = playerRef.current;
|
|
@@ -1430,7 +1437,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1430
1437
|
|
|
1431
1438
|
var onVolumeChange = function onVolumeChange(_ref4) {
|
|
1432
1439
|
var newVolume = _ref4.volume;
|
|
1433
|
-
|
|
1440
|
+
setVolumeState(newVolume);
|
|
1441
|
+
debug('onVolumeChange [ID: %s]', videoId);
|
|
1434
1442
|
};
|
|
1435
1443
|
|
|
1436
1444
|
var onEnded = function onEnded() {
|
|
@@ -1440,6 +1448,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1440
1448
|
ended: true,
|
|
1441
1449
|
buffering: false
|
|
1442
1450
|
});
|
|
1451
|
+
debug('onEnded [ID: %s]', videoId);
|
|
1443
1452
|
};
|
|
1444
1453
|
|
|
1445
1454
|
var onBufferStart = function onBufferStart() {
|
|
@@ -1609,9 +1618,9 @@ function useVideoPlayer(params) {
|
|
|
1609
1618
|
return player;
|
|
1610
1619
|
}
|
|
1611
1620
|
|
|
1621
|
+
exports.documentEventsManager = documentEventsManager;
|
|
1612
1622
|
exports.getObserver = getObserver;
|
|
1613
1623
|
exports.useDailymotionPlayer = useDailymotionPlayer;
|
|
1614
|
-
exports.useDocumentEvent = useDocumentEvent;
|
|
1615
1624
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1616
1625
|
exports.useKeyboard = useKeyboard;
|
|
1617
1626
|
exports.useNativeVideoPlayer = useNativeVideoPlayer;
|
|
@@ -1620,5 +1629,5 @@ exports.usePlayerCurrentTime = usePlayerCurrentTime;
|
|
|
1620
1629
|
exports.useResizeObserver = useResizeObserver;
|
|
1621
1630
|
exports.useVideoPlayer = useVideoPlayer;
|
|
1622
1631
|
exports.useVimeoPlayer = useVimeoPlayer;
|
|
1623
|
-
exports.useWindowEvent = useWindowEvent;
|
|
1624
1632
|
exports.useYouTubePlayer = useYouTubePlayer;
|
|
1633
|
+
exports.windowEventsManager = windowEventsManager;
|
package/dist/es.js
CHANGED
|
@@ -136,12 +136,14 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
136
136
|
setLoaded = _useState6[1];
|
|
137
137
|
|
|
138
138
|
var apiRef = useRef(typeof window.DM !== 'undefined' ? window.DM : null);
|
|
139
|
-
var elementRef = useRef(null);
|
|
140
|
-
var playerRef = useRef(null);
|
|
141
139
|
var ready = apiLoaded && playerReady;
|
|
142
140
|
var videoId = useMemo(function () {
|
|
143
141
|
return getVideoId(id);
|
|
144
142
|
}, [id]);
|
|
143
|
+
var elementRef = useRef(null);
|
|
144
|
+
var playerRef = useRef(null);
|
|
145
|
+
var playerElementRef = useRef(elementRef.current);
|
|
146
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
145
147
|
|
|
146
148
|
var _useState7 = useState(initialMuted),
|
|
147
149
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
@@ -178,6 +180,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
178
180
|
var canceled = false;
|
|
179
181
|
|
|
180
182
|
if (!apiLoaded && videoId !== null) {
|
|
183
|
+
debug$3('Load API');
|
|
181
184
|
loadDailymotion().then(function (api) {
|
|
182
185
|
if (!canceled) {
|
|
183
186
|
apiRef.current = api;
|
|
@@ -218,9 +221,10 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
218
221
|
var player = currentPlayer;
|
|
219
222
|
|
|
220
223
|
if (player !== null) {
|
|
221
|
-
player.load(
|
|
224
|
+
player.load(videoId, {
|
|
222
225
|
params: playerParams
|
|
223
226
|
});
|
|
227
|
+
debug$3('Load video [ID: %s]', videoId);
|
|
224
228
|
} else {
|
|
225
229
|
player = DM.player(element, {
|
|
226
230
|
video: videoId,
|
|
@@ -228,13 +232,16 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
228
232
|
height: height,
|
|
229
233
|
params: playerParams
|
|
230
234
|
});
|
|
231
|
-
|
|
235
|
+
debug$3('Create player [ID: %s]', videoId);
|
|
232
236
|
}
|
|
233
237
|
|
|
234
238
|
if (!playerReady) {
|
|
235
239
|
setPlayerReady(true);
|
|
236
240
|
}
|
|
237
|
-
|
|
241
|
+
|
|
242
|
+
playerRef.current = player;
|
|
243
|
+
playerElementRef.current = element;
|
|
244
|
+
}, [apiLoaded, elementHasChanged, videoId, width, height, autoplay, muted, start, controls, queueAutoplayNext, queueEnable, sharingEnable, uiLogo, uiStartScreenInfo]);
|
|
238
245
|
useEffect(function () {
|
|
239
246
|
var _playerRef$current2 = playerRef.current,
|
|
240
247
|
player = _playerRef$current2 === void 0 ? null : _playerRef$current2;
|
|
@@ -248,6 +255,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
248
255
|
|
|
249
256
|
function onPlaybackReady() {
|
|
250
257
|
setLoaded(true);
|
|
258
|
+
debug$3('onPlaybackReady [ID: %s]', videoId);
|
|
251
259
|
}
|
|
252
260
|
|
|
253
261
|
function onLoadedMetadata() {
|
|
@@ -255,6 +263,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
255
263
|
duration: player.duration
|
|
256
264
|
});
|
|
257
265
|
setMetadata(currentMetadata);
|
|
266
|
+
debug$3('onLoadedMetadata [ID: %s]', videoId);
|
|
258
267
|
}
|
|
259
268
|
|
|
260
269
|
function onDurationChange() {
|
|
@@ -262,11 +271,13 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
262
271
|
duration: player.duration
|
|
263
272
|
});
|
|
264
273
|
setMetadata(currentMetadata);
|
|
274
|
+
debug$3('onDurationChange [ID: %s]', videoId);
|
|
265
275
|
}
|
|
266
276
|
|
|
267
277
|
function onVolumeChange() {
|
|
268
278
|
setMuted(player.muted);
|
|
269
279
|
setVolumeState(player.volume);
|
|
280
|
+
debug$3('onVolumeChange [ID: %s]', videoId);
|
|
270
281
|
}
|
|
271
282
|
|
|
272
283
|
function onPlay() {
|
|
@@ -276,6 +287,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
276
287
|
ended: false
|
|
277
288
|
});
|
|
278
289
|
setPlayState(currentPlayState);
|
|
290
|
+
debug$3('onPlay [ID: %s]', videoId);
|
|
279
291
|
}
|
|
280
292
|
|
|
281
293
|
function onPause() {
|
|
@@ -285,6 +297,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
285
297
|
ended: false
|
|
286
298
|
});
|
|
287
299
|
setPlayState(currentPlayState);
|
|
300
|
+
debug$3('onPause [ID: %s]', videoId);
|
|
288
301
|
}
|
|
289
302
|
|
|
290
303
|
function onEnd() {
|
|
@@ -294,6 +307,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
294
307
|
ended: true
|
|
295
308
|
});
|
|
296
309
|
setPlayState(currentPlayState);
|
|
310
|
+
debug$3('onEnd [ID: %s]', videoId);
|
|
297
311
|
}
|
|
298
312
|
|
|
299
313
|
function onPlaying() {
|
|
@@ -301,6 +315,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
301
315
|
buffering: false
|
|
302
316
|
});
|
|
303
317
|
setPlayState(currentPlayState);
|
|
318
|
+
debug$3('onPlaying [ID: %s]', videoId);
|
|
304
319
|
}
|
|
305
320
|
|
|
306
321
|
function onWaiting() {
|
|
@@ -308,6 +323,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
308
323
|
buffering: true
|
|
309
324
|
});
|
|
310
325
|
setPlayState(currentPlayState);
|
|
326
|
+
debug$3('onWaiting [ID: %s]', videoId);
|
|
311
327
|
}
|
|
312
328
|
|
|
313
329
|
function onAdStart() {
|
|
@@ -315,6 +331,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
315
331
|
adPlaying: true
|
|
316
332
|
});
|
|
317
333
|
setPlayState(currentPlayState);
|
|
334
|
+
debug$3('onAdStart [ID: %s]', videoId);
|
|
318
335
|
}
|
|
319
336
|
|
|
320
337
|
function onAdEnd() {
|
|
@@ -322,6 +339,7 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
322
339
|
adPlaying: false
|
|
323
340
|
});
|
|
324
341
|
setPlayState(currentPlayState);
|
|
342
|
+
debug$3('onAdEnd [ID: %s]', videoId);
|
|
325
343
|
}
|
|
326
344
|
|
|
327
345
|
player.addEventListener('playback_ready', onPlaybackReady);
|
|
@@ -397,33 +415,19 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
397
415
|
}, metadata), playState);
|
|
398
416
|
};
|
|
399
417
|
|
|
400
|
-
var
|
|
401
|
-
|
|
402
|
-
var useDocumentEvent = function useDocumentEvent(event, callback) {
|
|
403
|
-
useEffect(function () {
|
|
404
|
-
if (eventsManager$1 !== null && callback !== null) {
|
|
405
|
-
eventsManager$1.subscribe(event, callback);
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
return function () {
|
|
409
|
-
if (eventsManager$1 !== null && callback !== null) {
|
|
410
|
-
eventsManager$1.unsubscribe(event, callback);
|
|
411
|
-
}
|
|
412
|
-
};
|
|
413
|
-
}, [event, callback]);
|
|
414
|
-
};
|
|
418
|
+
var documentEventsManager = typeof document !== 'undefined' ? new EventsManager(document) : null;
|
|
415
419
|
|
|
416
|
-
var
|
|
420
|
+
var windowEventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
|
|
417
421
|
|
|
418
422
|
var useWindowEvent = function useWindowEvent(event, callback) {
|
|
419
423
|
useEffect(function () {
|
|
420
|
-
if (
|
|
421
|
-
|
|
424
|
+
if (windowEventsManager !== null && callback !== null) {
|
|
425
|
+
windowEventsManager.subscribe(event, callback);
|
|
422
426
|
}
|
|
423
427
|
|
|
424
428
|
return function () {
|
|
425
|
-
if (
|
|
426
|
-
|
|
429
|
+
if (windowEventsManager !== null && callback !== null) {
|
|
430
|
+
windowEventsManager.unsubscribe(event, callback);
|
|
427
431
|
}
|
|
428
432
|
};
|
|
429
433
|
}, [event, callback]);
|
|
@@ -940,6 +944,7 @@ function useYouTubePlayer(id) {
|
|
|
940
944
|
var elementRef = useRef(null);
|
|
941
945
|
var playerRef = useRef(null);
|
|
942
946
|
var playerElementRef = useRef(elementRef.current);
|
|
947
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
943
948
|
var videoId = useMemo(function () {
|
|
944
949
|
return getVideoId(id);
|
|
945
950
|
}, [id]);
|
|
@@ -977,6 +982,7 @@ function useYouTubePlayer(id) {
|
|
|
977
982
|
var canceled = false;
|
|
978
983
|
|
|
979
984
|
if (!apiLoaded && videoId !== null) {
|
|
985
|
+
debug$1('Load API');
|
|
980
986
|
loadYouTube().then(function (api) {
|
|
981
987
|
if (!canceled) {
|
|
982
988
|
apiRef.current = api;
|
|
@@ -1042,7 +1048,7 @@ function useYouTubePlayer(id) {
|
|
|
1042
1048
|
debug$1('iFrame switched');
|
|
1043
1049
|
destroyPlayer();
|
|
1044
1050
|
}
|
|
1045
|
-
}, [
|
|
1051
|
+
}, [elementHasChanged]); // Create player
|
|
1046
1052
|
|
|
1047
1053
|
useEffect(function () {
|
|
1048
1054
|
var _apiRef$current = apiRef.current,
|
|
@@ -1064,7 +1070,6 @@ function useYouTubePlayer(id) {
|
|
|
1064
1070
|
player.loadVideoById(videoId);
|
|
1065
1071
|
} else {
|
|
1066
1072
|
debug$1('Create player [ID: %s]', videoId);
|
|
1067
|
-
var iframe = elementRef.current;
|
|
1068
1073
|
|
|
1069
1074
|
var onReady = function onReady(_ref2) {
|
|
1070
1075
|
var target = _ref2.target;
|
|
@@ -1110,7 +1115,7 @@ function useYouTubePlayer(id) {
|
|
|
1110
1115
|
debug$1('onStateChange %s [ID: %s]', stateLabel, videoId);
|
|
1111
1116
|
};
|
|
1112
1117
|
|
|
1113
|
-
player = new YT.Player(
|
|
1118
|
+
player = new YT.Player(element, {
|
|
1114
1119
|
videoId: videoId,
|
|
1115
1120
|
playerVars: {
|
|
1116
1121
|
controls: controls,
|
|
@@ -1126,11 +1131,11 @@ function useYouTubePlayer(id) {
|
|
|
1126
1131
|
onStateChange: onStateChange
|
|
1127
1132
|
}
|
|
1128
1133
|
});
|
|
1129
|
-
playerElementRef.current = iframe;
|
|
1130
1134
|
}
|
|
1131
1135
|
|
|
1132
1136
|
playerRef.current = player;
|
|
1133
|
-
|
|
1137
|
+
playerElementRef.current = element;
|
|
1138
|
+
}, [apiLoaded, videoId, elementHasChanged, setPlayState, setReady, setMetadata, destroyPlayer]);
|
|
1134
1139
|
var playing = playState.playing;
|
|
1135
1140
|
var getCurrentTime = useCallback(function (p) {
|
|
1136
1141
|
return p.getCurrentTime();
|
|
@@ -1205,6 +1210,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1205
1210
|
var apiRef = useRef(null);
|
|
1206
1211
|
var elementRef = useRef(null);
|
|
1207
1212
|
var playerRef = useRef(null);
|
|
1213
|
+
var playerElementRef = useRef(elementRef.current);
|
|
1214
|
+
var elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
1208
1215
|
var videoId = useMemo(function () {
|
|
1209
1216
|
return getVideoId(id);
|
|
1210
1217
|
}, [id]);
|
|
@@ -1248,6 +1255,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1248
1255
|
var canceled = false;
|
|
1249
1256
|
|
|
1250
1257
|
if (!apiLoaded && id !== null) {
|
|
1258
|
+
debug('Load API');
|
|
1251
1259
|
loadVimeo().then(function (api) {
|
|
1252
1260
|
if (!canceled) {
|
|
1253
1261
|
apiRef.current = api;
|
|
@@ -1302,7 +1310,6 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1302
1310
|
playerRef.current = null;
|
|
1303
1311
|
}
|
|
1304
1312
|
}, []);
|
|
1305
|
-
var playerElementRef = useRef(elementRef.current);
|
|
1306
1313
|
useEffect(function () {
|
|
1307
1314
|
var currentPlayer = playerRef.current;
|
|
1308
1315
|
|
|
@@ -1310,7 +1317,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1310
1317
|
debug('iFrame switched');
|
|
1311
1318
|
destroyVideo();
|
|
1312
1319
|
}
|
|
1313
|
-
}); // Create player
|
|
1320
|
+
}, [elementHasChanged]); // Create player
|
|
1314
1321
|
|
|
1315
1322
|
useEffect(function () {
|
|
1316
1323
|
var _apiRef$current = apiRef.current,
|
|
@@ -1343,7 +1350,6 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1343
1350
|
}).catch(function (e) {
|
|
1344
1351
|
debug('ERROR: %o', e);
|
|
1345
1352
|
});
|
|
1346
|
-
playerElementRef.current = element;
|
|
1347
1353
|
} else {
|
|
1348
1354
|
debug('Load video [ID: %s]', videoId);
|
|
1349
1355
|
player.loadVideo(videoId).catch(function (e) {
|
|
@@ -1352,7 +1358,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1352
1358
|
}
|
|
1353
1359
|
|
|
1354
1360
|
playerRef.current = player;
|
|
1355
|
-
|
|
1361
|
+
playerElementRef.current = element;
|
|
1362
|
+
}, [apiLoaded, videoId, elementHasChanged, setReady, destroyVideo, setLoaded]); // Bind player events
|
|
1356
1363
|
|
|
1357
1364
|
useEffect(function () {
|
|
1358
1365
|
var player = playerRef.current;
|
|
@@ -1418,7 +1425,8 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1418
1425
|
|
|
1419
1426
|
var onVolumeChange = function onVolumeChange(_ref4) {
|
|
1420
1427
|
var newVolume = _ref4.volume;
|
|
1421
|
-
|
|
1428
|
+
setVolumeState(newVolume);
|
|
1429
|
+
debug('onVolumeChange [ID: %s]', videoId);
|
|
1422
1430
|
};
|
|
1423
1431
|
|
|
1424
1432
|
var onEnded = function onEnded() {
|
|
@@ -1428,6 +1436,7 @@ var useVimeoPlayer = function useVimeoPlayer(id) {
|
|
|
1428
1436
|
ended: true,
|
|
1429
1437
|
buffering: false
|
|
1430
1438
|
});
|
|
1439
|
+
debug('onEnded [ID: %s]', videoId);
|
|
1431
1440
|
};
|
|
1432
1441
|
|
|
1433
1442
|
var onBufferStart = function onBufferStart() {
|
|
@@ -1597,4 +1606,4 @@ function useVideoPlayer(params) {
|
|
|
1597
1606
|
return player;
|
|
1598
1607
|
}
|
|
1599
1608
|
|
|
1600
|
-
export { getObserver, useDailymotionPlayer,
|
|
1609
|
+
export { documentEventsManager, getObserver, useDailymotionPlayer, useIntersectionObserver, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useYouTubePlayer, windowEventsManager };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@folklore/hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "React hooks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "85e1b0e9e6ddd91680edabaeeb7f252400adbb92",
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@folklore/events": "^0.0.3",
|
|
54
54
|
"@folklore/services": "^0.1.36",
|