@folklore/hooks 0.0.22 → 0.0.25

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.
Files changed (3) hide show
  1. package/dist/cjs.js +92 -0
  2. package/dist/es.js +89 -1
  3. package/package.json +2 -2
package/dist/cjs.js CHANGED
@@ -1632,6 +1632,95 @@ function useVideoPlayer(params) {
1632
1632
  return player;
1633
1633
  }
1634
1634
 
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 = react.useState(currentScroll),
1650
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1651
+ scroll = _useState2[0],
1652
+ setScroll = _useState2[1];
1653
+
1654
+ var updateScroll = react.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 = react.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
+ react.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 = react.useState(currentSize),
1694
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1695
+ size = _useState2[0],
1696
+ setSize = _useState2[1];
1697
+
1698
+ var updateSize = react.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 = react.useCallback(function () {
1710
+ var newSize = updateSize();
1711
+
1712
+ if (newSize !== null && onChange !== null) {
1713
+ onChange(newSize);
1714
+ }
1715
+ }, [onChange]);
1716
+ useWindowEvent('resize', onResize);
1717
+ react.useEffect(function () {
1718
+ onResize();
1719
+ }, []);
1720
+ return size;
1721
+ }
1722
+
1723
+ exports.documentEventsManager = eventsManager$1;
1635
1724
  exports.getObserver = getObserver;
1636
1725
  exports.useDailymotionPlayer = useDailymotionPlayer;
1637
1726
  exports.useDocumentEvent = useDocumentEvent;
@@ -1644,4 +1733,7 @@ exports.useResizeObserver = useResizeObserver;
1644
1733
  exports.useVideoPlayer = useVideoPlayer;
1645
1734
  exports.useVimeoPlayer = useVimeoPlayer;
1646
1735
  exports.useWindowEvent = useWindowEvent;
1736
+ exports.useWindowScroll = useWindowScroll;
1737
+ exports.useWindowSize = useWindowSize;
1647
1738
  exports.useYouTubePlayer = useYouTubePlayer;
1739
+ exports.windowEventsManager = eventsManager;
package/dist/es.js CHANGED
@@ -1620,4 +1620,92 @@ function useVideoPlayer(params) {
1620
1620
  return player;
1621
1621
  }
1622
1622
 
1623
- export { getObserver, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useWindowEvent, useYouTubePlayer };
1623
+ var getWindowScroll = function getWindowScroll() {
1624
+ return {
1625
+ x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
1626
+ y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
1627
+ };
1628
+ };
1629
+
1630
+ var currentScroll = getWindowScroll();
1631
+
1632
+ var useWindowScroll = function useWindowScroll() {
1633
+ var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1634
+ var _opts$onChange = opts.onChange,
1635
+ onChange = _opts$onChange === void 0 ? null : _opts$onChange;
1636
+
1637
+ var _useState = useState(currentScroll),
1638
+ _useState2 = _slicedToArray(_useState, 2),
1639
+ scroll = _useState2[0],
1640
+ setScroll = _useState2[1];
1641
+
1642
+ var updateScroll = useCallback(function () {
1643
+ var newScroll = getWindowScroll();
1644
+
1645
+ if (currentScroll.x !== newScroll.x || currentScroll.y !== newScroll.y) {
1646
+ currentScroll.x = newScroll.x;
1647
+ currentScroll.y = newScroll.y;
1648
+ setScroll(newScroll);
1649
+ return newScroll;
1650
+ }
1651
+
1652
+ return null;
1653
+ }, [setScroll]);
1654
+ var onScroll = useCallback(function () {
1655
+ var newScroll = updateScroll();
1656
+
1657
+ if (newScroll !== null && onChange !== null) {
1658
+ onChange(newScroll);
1659
+ }
1660
+ }, [updateScroll, onChange]);
1661
+ useWindowEvent('scroll', onScroll);
1662
+ useEffect(function () {
1663
+ onScroll();
1664
+ }, []);
1665
+ return scroll;
1666
+ };
1667
+
1668
+ var getWindowSize = function getWindowSize() {
1669
+ return {
1670
+ width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1671
+ height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1672
+ };
1673
+ };
1674
+ var currentSize = getWindowSize();
1675
+
1676
+ function useWindowSize() {
1677
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1678
+ _ref$onChange = _ref.onChange,
1679
+ onChange = _ref$onChange === void 0 ? null : _ref$onChange;
1680
+
1681
+ var _useState = useState(currentSize),
1682
+ _useState2 = _slicedToArray(_useState, 2),
1683
+ size = _useState2[0],
1684
+ setSize = _useState2[1];
1685
+
1686
+ var updateSize = useCallback(function () {
1687
+ var newSize = getWindowSize();
1688
+
1689
+ if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1690
+ currentSize = newSize;
1691
+ setSize(newSize);
1692
+ return newSize;
1693
+ }
1694
+
1695
+ return null;
1696
+ }, [setSize]);
1697
+ var onResize = useCallback(function () {
1698
+ var newSize = updateSize();
1699
+
1700
+ if (newSize !== null && onChange !== null) {
1701
+ onChange(newSize);
1702
+ }
1703
+ }, [onChange]);
1704
+ useWindowEvent('resize', onResize);
1705
+ useEffect(function () {
1706
+ onResize();
1707
+ }, []);
1708
+ return size;
1709
+ }
1710
+
1711
+ 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.22",
3
+ "version": "0.0.25",
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": "22a55f41d8b6f80e1f3673bb3e2c077860488afe",
51
+ "gitHead": "dab8a1cffb1bab13e6d76ec464720a1746917da7",
52
52
  "dependencies": {
53
53
  "@folklore/events": "^0.0.3",
54
54
  "@folklore/services": "^0.1.36",