@folklore/hooks 0.0.23 → 0.0.26
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 +128 -10
- package/dist/es.js +123 -9
- package/package.json +2 -2
package/dist/cjs.js
CHANGED
|
@@ -427,19 +427,33 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
427
427
|
}, metadata), playState);
|
|
428
428
|
};
|
|
429
429
|
|
|
430
|
-
var
|
|
430
|
+
var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager__default["default"](document) : null;
|
|
431
431
|
|
|
432
|
-
var
|
|
432
|
+
var useDocumentEvent = function useDocumentEvent(event, callback) {
|
|
433
|
+
react.useEffect(function () {
|
|
434
|
+
if (eventsManager$1 !== null && callback !== null) {
|
|
435
|
+
eventsManager$1.subscribe(event, callback);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
return function () {
|
|
439
|
+
if (eventsManager$1 !== null && callback !== null) {
|
|
440
|
+
eventsManager$1.unsubscribe(event, callback);
|
|
441
|
+
}
|
|
442
|
+
};
|
|
443
|
+
}, [event, callback]);
|
|
444
|
+
};
|
|
445
|
+
|
|
446
|
+
var eventsManager = typeof window !== 'undefined' ? new EventsManager__default["default"](window) : null;
|
|
433
447
|
|
|
434
448
|
var useWindowEvent = function useWindowEvent(event, callback) {
|
|
435
449
|
react.useEffect(function () {
|
|
436
|
-
if (
|
|
437
|
-
|
|
450
|
+
if (eventsManager !== null && callback !== null) {
|
|
451
|
+
eventsManager.subscribe(event, callback);
|
|
438
452
|
}
|
|
439
453
|
|
|
440
454
|
return function () {
|
|
441
|
-
if (
|
|
442
|
-
|
|
455
|
+
if (eventsManager !== null && callback !== null) {
|
|
456
|
+
eventsManager.unsubscribe(event, callback);
|
|
443
457
|
}
|
|
444
458
|
};
|
|
445
459
|
}, [event, callback]);
|
|
@@ -449,7 +463,13 @@ function useKeyboard() {
|
|
|
449
463
|
var keyMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
450
464
|
var onKeyDown = react.useCallback(function (event) {
|
|
451
465
|
var key = event.key;
|
|
452
|
-
var callback =
|
|
466
|
+
var callback = null;
|
|
467
|
+
|
|
468
|
+
if (typeof keyMap === 'function') {
|
|
469
|
+
callback = keyMap;
|
|
470
|
+
} else if (typeof keyMap[key] !== 'undefined') {
|
|
471
|
+
callback = typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).down || null;
|
|
472
|
+
}
|
|
453
473
|
|
|
454
474
|
if (callback !== null) {
|
|
455
475
|
callback(event);
|
|
@@ -457,7 +477,13 @@ function useKeyboard() {
|
|
|
457
477
|
}, [keyMap]);
|
|
458
478
|
var onKeyUp = react.useCallback(function (event) {
|
|
459
479
|
var key = event.key;
|
|
460
|
-
var callback =
|
|
480
|
+
var callback = null;
|
|
481
|
+
|
|
482
|
+
if (typeof keyMap === 'function') {
|
|
483
|
+
callback = keyMap;
|
|
484
|
+
} else if (typeof keyMap[key] !== 'undefined') {
|
|
485
|
+
callback = typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).up || null;
|
|
486
|
+
}
|
|
461
487
|
|
|
462
488
|
if (callback !== null) {
|
|
463
489
|
callback(event);
|
|
@@ -1618,9 +1644,98 @@ function useVideoPlayer(params) {
|
|
|
1618
1644
|
return player;
|
|
1619
1645
|
}
|
|
1620
1646
|
|
|
1621
|
-
|
|
1647
|
+
var getWindowScroll = function getWindowScroll() {
|
|
1648
|
+
return {
|
|
1649
|
+
x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
|
|
1650
|
+
y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
|
|
1651
|
+
};
|
|
1652
|
+
};
|
|
1653
|
+
|
|
1654
|
+
var currentScroll = getWindowScroll();
|
|
1655
|
+
|
|
1656
|
+
var useWindowScroll = function useWindowScroll() {
|
|
1657
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1658
|
+
var _opts$onChange = opts.onChange,
|
|
1659
|
+
onChange = _opts$onChange === void 0 ? null : _opts$onChange;
|
|
1660
|
+
|
|
1661
|
+
var _useState = react.useState(currentScroll),
|
|
1662
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1663
|
+
scroll = _useState2[0],
|
|
1664
|
+
setScroll = _useState2[1];
|
|
1665
|
+
|
|
1666
|
+
var updateScroll = react.useCallback(function () {
|
|
1667
|
+
var newScroll = getWindowScroll();
|
|
1668
|
+
|
|
1669
|
+
if (currentScroll.x !== newScroll.x || currentScroll.y !== newScroll.y) {
|
|
1670
|
+
currentScroll.x = newScroll.x;
|
|
1671
|
+
currentScroll.y = newScroll.y;
|
|
1672
|
+
setScroll(newScroll);
|
|
1673
|
+
return newScroll;
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
return null;
|
|
1677
|
+
}, [setScroll]);
|
|
1678
|
+
var onScroll = react.useCallback(function () {
|
|
1679
|
+
var newScroll = updateScroll();
|
|
1680
|
+
|
|
1681
|
+
if (newScroll !== null && onChange !== null) {
|
|
1682
|
+
onChange(newScroll);
|
|
1683
|
+
}
|
|
1684
|
+
}, [updateScroll, onChange]);
|
|
1685
|
+
useWindowEvent('scroll', onScroll);
|
|
1686
|
+
react.useEffect(function () {
|
|
1687
|
+
onScroll();
|
|
1688
|
+
}, []);
|
|
1689
|
+
return scroll;
|
|
1690
|
+
};
|
|
1691
|
+
|
|
1692
|
+
var getWindowSize = function getWindowSize() {
|
|
1693
|
+
return {
|
|
1694
|
+
width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
|
|
1695
|
+
height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
|
|
1696
|
+
};
|
|
1697
|
+
};
|
|
1698
|
+
var currentSize = getWindowSize();
|
|
1699
|
+
|
|
1700
|
+
function useWindowSize() {
|
|
1701
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1702
|
+
_ref$onChange = _ref.onChange,
|
|
1703
|
+
onChange = _ref$onChange === void 0 ? null : _ref$onChange;
|
|
1704
|
+
|
|
1705
|
+
var _useState = react.useState(currentSize),
|
|
1706
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
1707
|
+
size = _useState2[0],
|
|
1708
|
+
setSize = _useState2[1];
|
|
1709
|
+
|
|
1710
|
+
var updateSize = react.useCallback(function () {
|
|
1711
|
+
var newSize = getWindowSize();
|
|
1712
|
+
|
|
1713
|
+
if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
|
|
1714
|
+
currentSize = newSize;
|
|
1715
|
+
setSize(newSize);
|
|
1716
|
+
return newSize;
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
return null;
|
|
1720
|
+
}, [setSize]);
|
|
1721
|
+
var onResize = react.useCallback(function () {
|
|
1722
|
+
var newSize = updateSize();
|
|
1723
|
+
|
|
1724
|
+
if (newSize !== null && onChange !== null) {
|
|
1725
|
+
onChange(newSize);
|
|
1726
|
+
}
|
|
1727
|
+
}, [onChange]);
|
|
1728
|
+
useWindowEvent('resize', onResize);
|
|
1729
|
+
react.useEffect(function () {
|
|
1730
|
+
onResize();
|
|
1731
|
+
}, []);
|
|
1732
|
+
return size;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
exports.documentEventsManager = eventsManager$1;
|
|
1622
1736
|
exports.getObserver = getObserver;
|
|
1623
1737
|
exports.useDailymotionPlayer = useDailymotionPlayer;
|
|
1738
|
+
exports.useDocumentEvent = useDocumentEvent;
|
|
1624
1739
|
exports.useIntersectionObserver = useIntersectionObserver;
|
|
1625
1740
|
exports.useKeyboard = useKeyboard;
|
|
1626
1741
|
exports.useNativeVideoPlayer = useNativeVideoPlayer;
|
|
@@ -1629,5 +1744,8 @@ exports.usePlayerCurrentTime = usePlayerCurrentTime;
|
|
|
1629
1744
|
exports.useResizeObserver = useResizeObserver;
|
|
1630
1745
|
exports.useVideoPlayer = useVideoPlayer;
|
|
1631
1746
|
exports.useVimeoPlayer = useVimeoPlayer;
|
|
1747
|
+
exports.useWindowEvent = useWindowEvent;
|
|
1748
|
+
exports.useWindowScroll = useWindowScroll;
|
|
1749
|
+
exports.useWindowSize = useWindowSize;
|
|
1632
1750
|
exports.useYouTubePlayer = useYouTubePlayer;
|
|
1633
|
-
exports.windowEventsManager =
|
|
1751
|
+
exports.windowEventsManager = eventsManager;
|
package/dist/es.js
CHANGED
|
@@ -415,19 +415,33 @@ var useDailymotionPlayer = function useDailymotionPlayer() {
|
|
|
415
415
|
}, metadata), playState);
|
|
416
416
|
};
|
|
417
417
|
|
|
418
|
-
var
|
|
418
|
+
var eventsManager$1 = typeof document !== 'undefined' ? new EventsManager(document) : null;
|
|
419
419
|
|
|
420
|
-
var
|
|
420
|
+
var useDocumentEvent = function useDocumentEvent(event, callback) {
|
|
421
|
+
useEffect(function () {
|
|
422
|
+
if (eventsManager$1 !== null && callback !== null) {
|
|
423
|
+
eventsManager$1.subscribe(event, callback);
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return function () {
|
|
427
|
+
if (eventsManager$1 !== null && callback !== null) {
|
|
428
|
+
eventsManager$1.unsubscribe(event, callback);
|
|
429
|
+
}
|
|
430
|
+
};
|
|
431
|
+
}, [event, callback]);
|
|
432
|
+
};
|
|
433
|
+
|
|
434
|
+
var eventsManager = typeof window !== 'undefined' ? new EventsManager(window) : null;
|
|
421
435
|
|
|
422
436
|
var useWindowEvent = function useWindowEvent(event, callback) {
|
|
423
437
|
useEffect(function () {
|
|
424
|
-
if (
|
|
425
|
-
|
|
438
|
+
if (eventsManager !== null && callback !== null) {
|
|
439
|
+
eventsManager.subscribe(event, callback);
|
|
426
440
|
}
|
|
427
441
|
|
|
428
442
|
return function () {
|
|
429
|
-
if (
|
|
430
|
-
|
|
443
|
+
if (eventsManager !== null && callback !== null) {
|
|
444
|
+
eventsManager.unsubscribe(event, callback);
|
|
431
445
|
}
|
|
432
446
|
};
|
|
433
447
|
}, [event, callback]);
|
|
@@ -437,7 +451,13 @@ function useKeyboard() {
|
|
|
437
451
|
var keyMap = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
438
452
|
var onKeyDown = useCallback(function (event) {
|
|
439
453
|
var key = event.key;
|
|
440
|
-
var callback =
|
|
454
|
+
var callback = null;
|
|
455
|
+
|
|
456
|
+
if (typeof keyMap === 'function') {
|
|
457
|
+
callback = keyMap;
|
|
458
|
+
} else if (typeof keyMap[key] !== 'undefined') {
|
|
459
|
+
callback = typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).down || null;
|
|
460
|
+
}
|
|
441
461
|
|
|
442
462
|
if (callback !== null) {
|
|
443
463
|
callback(event);
|
|
@@ -445,7 +465,13 @@ function useKeyboard() {
|
|
|
445
465
|
}, [keyMap]);
|
|
446
466
|
var onKeyUp = useCallback(function (event) {
|
|
447
467
|
var key = event.key;
|
|
448
|
-
var callback =
|
|
468
|
+
var callback = null;
|
|
469
|
+
|
|
470
|
+
if (typeof keyMap === 'function') {
|
|
471
|
+
callback = keyMap;
|
|
472
|
+
} else if (typeof keyMap[key] !== 'undefined') {
|
|
473
|
+
callback = typeof keyMap[key] === 'function' ? keyMap[key] : (keyMap[key] || {}).up || null;
|
|
474
|
+
}
|
|
449
475
|
|
|
450
476
|
if (callback !== null) {
|
|
451
477
|
callback(event);
|
|
@@ -1606,4 +1632,92 @@ function useVideoPlayer(params) {
|
|
|
1606
1632
|
return player;
|
|
1607
1633
|
}
|
|
1608
1634
|
|
|
1609
|
-
|
|
1635
|
+
var getWindowScroll = function getWindowScroll() {
|
|
1636
|
+
return {
|
|
1637
|
+
x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
|
|
1638
|
+
y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
|
|
1639
|
+
};
|
|
1640
|
+
};
|
|
1641
|
+
|
|
1642
|
+
var currentScroll = getWindowScroll();
|
|
1643
|
+
|
|
1644
|
+
var useWindowScroll = function useWindowScroll() {
|
|
1645
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
1646
|
+
var _opts$onChange = opts.onChange,
|
|
1647
|
+
onChange = _opts$onChange === void 0 ? null : _opts$onChange;
|
|
1648
|
+
|
|
1649
|
+
var _useState = useState(currentScroll),
|
|
1650
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1651
|
+
scroll = _useState2[0],
|
|
1652
|
+
setScroll = _useState2[1];
|
|
1653
|
+
|
|
1654
|
+
var updateScroll = useCallback(function () {
|
|
1655
|
+
var newScroll = getWindowScroll();
|
|
1656
|
+
|
|
1657
|
+
if (currentScroll.x !== newScroll.x || currentScroll.y !== newScroll.y) {
|
|
1658
|
+
currentScroll.x = newScroll.x;
|
|
1659
|
+
currentScroll.y = newScroll.y;
|
|
1660
|
+
setScroll(newScroll);
|
|
1661
|
+
return newScroll;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
return null;
|
|
1665
|
+
}, [setScroll]);
|
|
1666
|
+
var onScroll = useCallback(function () {
|
|
1667
|
+
var newScroll = updateScroll();
|
|
1668
|
+
|
|
1669
|
+
if (newScroll !== null && onChange !== null) {
|
|
1670
|
+
onChange(newScroll);
|
|
1671
|
+
}
|
|
1672
|
+
}, [updateScroll, onChange]);
|
|
1673
|
+
useWindowEvent('scroll', onScroll);
|
|
1674
|
+
useEffect(function () {
|
|
1675
|
+
onScroll();
|
|
1676
|
+
}, []);
|
|
1677
|
+
return scroll;
|
|
1678
|
+
};
|
|
1679
|
+
|
|
1680
|
+
var getWindowSize = function getWindowSize() {
|
|
1681
|
+
return {
|
|
1682
|
+
width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
|
|
1683
|
+
height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
|
|
1684
|
+
};
|
|
1685
|
+
};
|
|
1686
|
+
var currentSize = getWindowSize();
|
|
1687
|
+
|
|
1688
|
+
function useWindowSize() {
|
|
1689
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1690
|
+
_ref$onChange = _ref.onChange,
|
|
1691
|
+
onChange = _ref$onChange === void 0 ? null : _ref$onChange;
|
|
1692
|
+
|
|
1693
|
+
var _useState = useState(currentSize),
|
|
1694
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1695
|
+
size = _useState2[0],
|
|
1696
|
+
setSize = _useState2[1];
|
|
1697
|
+
|
|
1698
|
+
var updateSize = useCallback(function () {
|
|
1699
|
+
var newSize = getWindowSize();
|
|
1700
|
+
|
|
1701
|
+
if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
|
|
1702
|
+
currentSize = newSize;
|
|
1703
|
+
setSize(newSize);
|
|
1704
|
+
return newSize;
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
return null;
|
|
1708
|
+
}, [setSize]);
|
|
1709
|
+
var onResize = useCallback(function () {
|
|
1710
|
+
var newSize = updateSize();
|
|
1711
|
+
|
|
1712
|
+
if (newSize !== null && onChange !== null) {
|
|
1713
|
+
onChange(newSize);
|
|
1714
|
+
}
|
|
1715
|
+
}, [onChange]);
|
|
1716
|
+
useWindowEvent('resize', onResize);
|
|
1717
|
+
useEffect(function () {
|
|
1718
|
+
onResize();
|
|
1719
|
+
}, []);
|
|
1720
|
+
return size;
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
export { eventsManager$1 as documentEventsManager, getObserver, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@folklore/hooks",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.26",
|
|
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": "318ecab2c776c3267abf57bffef8012cfcd937f5",
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@folklore/events": "^0.0.3",
|
|
54
54
|
"@folklore/services": "^0.1.36",
|