@folklore/hooks 0.0.23 → 0.0.24

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