@folklore/hooks 0.0.38 → 0.0.40

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 +77 -36
  2. package/dist/es.js +77 -37
  3. package/package.json +2 -2
package/dist/cjs.js CHANGED
@@ -1659,24 +1659,28 @@ function useVideoPlayer(params) {
1659
1659
  if (playing && customOnPlay !== null) {
1660
1660
  customOnPlay();
1661
1661
  }
1662
- }, [playing, customOnPlay]);
1662
+ }, [playing /* , customOnPlay */]);
1663
+
1663
1664
  react.useEffect(() => {
1664
1665
  if (paused && customOnPause !== null) {
1665
1666
  customOnPause();
1666
1667
  }
1667
- }, [paused, customOnPause]);
1668
+ }, [paused /* , customOnPause */]);
1669
+
1668
1670
  react.useEffect(() => {
1669
1671
  if (buffering && customOnBufferStart !== null) {
1670
1672
  customOnBufferStart();
1671
1673
  } else if (!buffering && customOnBufferEnded !== null) {
1672
1674
  customOnBufferEnded();
1673
1675
  }
1674
- }, [buffering, customOnBufferStart, customOnBufferEnded]);
1676
+ }, [buffering /* , customOnBufferStart, customOnBufferEnded */]);
1677
+
1675
1678
  react.useEffect(() => {
1676
1679
  if (ended && customOnEnd !== null) {
1677
1680
  customOnEnd();
1678
1681
  }
1679
- }, [ended, customOnEnd]);
1682
+ }, [ended /* , customOnEnd */]);
1683
+
1680
1684
  react.useEffect(() => {
1681
1685
  const hasMetadata = metaWidth !== null || metaHeight !== null || metaDuration !== null;
1682
1686
  if (hasMetadata && customOnMetadataChange !== null) {
@@ -1690,6 +1694,74 @@ function useVideoPlayer(params) {
1690
1694
  return player;
1691
1695
  }
1692
1696
 
1697
+ const getWindowSize = () => ({
1698
+ width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1699
+ height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1700
+ });
1701
+ let currentSize = getWindowSize();
1702
+ function useWindowSize() {
1703
+ let {
1704
+ onChange = null
1705
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1706
+ const [size, setSize] = react.useState(currentSize);
1707
+ const updateSize = react.useCallback(() => {
1708
+ const newSize = getWindowSize();
1709
+ if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1710
+ currentSize = newSize;
1711
+ setSize(newSize);
1712
+ return newSize;
1713
+ }
1714
+ return null;
1715
+ }, [setSize]);
1716
+ const onResize = react.useCallback(() => {
1717
+ const newSize = updateSize();
1718
+ if (newSize !== null && onChange !== null) {
1719
+ onChange(newSize);
1720
+ }
1721
+ }, [onChange]);
1722
+ useWindowEvent('resize', onResize);
1723
+ react.useEffect(() => {
1724
+ onResize();
1725
+ }, []);
1726
+ return size;
1727
+ }
1728
+
1729
+ const hasViewport = typeof window !== 'undefined' && (window.visualViewport || null) !== null;
1730
+ const useVisualViewportSize = () => {
1731
+ const {
1732
+ width: windowWidth,
1733
+ height: windowHeight
1734
+ } = useWindowSize();
1735
+ const [{
1736
+ width: viewportWidth,
1737
+ height: viewportHeight
1738
+ }, setViewportSize] = react.useState({
1739
+ width: windowWidth,
1740
+ height: windowHeight
1741
+ });
1742
+ const onResize = react.useCallback(e => {
1743
+ const viewport = e.target;
1744
+ setViewportSize({
1745
+ width: viewport.width,
1746
+ height: viewport.height
1747
+ });
1748
+ }, [setViewportSize]);
1749
+ react.useEffect(() => {
1750
+ if (!hasViewport) {
1751
+ return () => {};
1752
+ }
1753
+ window.visualViewport.addEventListener('resize', onResize);
1754
+ return () => {
1755
+ window.visualViewport.removeEventListener('resize', onResize);
1756
+ };
1757
+ }, [onResize]);
1758
+ return {
1759
+ width: viewportWidth || windowWidth,
1760
+ height: viewportHeight || windowHeight
1761
+ };
1762
+ };
1763
+ var useVisualViewportSize$1 = useVisualViewportSize;
1764
+
1693
1765
  const getWindowScroll = () => ({
1694
1766
  x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
1695
1767
  y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
@@ -1724,38 +1796,6 @@ function useWindowScroll() {
1724
1796
  return scroll;
1725
1797
  }
1726
1798
 
1727
- const getWindowSize = () => ({
1728
- width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1729
- height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1730
- });
1731
- let currentSize = getWindowSize();
1732
- function useWindowSize() {
1733
- let {
1734
- onChange = null
1735
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1736
- const [size, setSize] = react.useState(currentSize);
1737
- const updateSize = react.useCallback(() => {
1738
- const newSize = getWindowSize();
1739
- if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1740
- currentSize = newSize;
1741
- setSize(newSize);
1742
- return newSize;
1743
- }
1744
- return null;
1745
- }, [setSize]);
1746
- const onResize = react.useCallback(() => {
1747
- const newSize = updateSize();
1748
- if (newSize !== null && onChange !== null) {
1749
- onChange(newSize);
1750
- }
1751
- }, [onChange]);
1752
- useWindowEvent('resize', onResize);
1753
- react.useEffect(() => {
1754
- onResize();
1755
- }, []);
1756
- return size;
1757
- }
1758
-
1759
1799
  exports.documentEventsManager = eventsManager$1;
1760
1800
  exports.getObserver = getObserver;
1761
1801
  exports.useCounter = useCounter;
@@ -1771,6 +1811,7 @@ exports.usePlayerCurrentTime = usePlayerCurrentTime;
1771
1811
  exports.useResizeObserver = useResizeObserver;
1772
1812
  exports.useVideoPlayer = useVideoPlayer;
1773
1813
  exports.useVimeoPlayer = useVimeoPlayer;
1814
+ exports.useVisualViewportSize = useVisualViewportSize$1;
1774
1815
  exports.useWindowEvent = useWindowEvent;
1775
1816
  exports.useWindowScroll = useWindowScroll;
1776
1817
  exports.useWindowSize = useWindowSize;
package/dist/es.js CHANGED
@@ -1648,24 +1648,28 @@ function useVideoPlayer(params) {
1648
1648
  if (playing && customOnPlay !== null) {
1649
1649
  customOnPlay();
1650
1650
  }
1651
- }, [playing, customOnPlay]);
1651
+ }, [playing /* , customOnPlay */]);
1652
+
1652
1653
  useEffect(() => {
1653
1654
  if (paused && customOnPause !== null) {
1654
1655
  customOnPause();
1655
1656
  }
1656
- }, [paused, customOnPause]);
1657
+ }, [paused /* , customOnPause */]);
1658
+
1657
1659
  useEffect(() => {
1658
1660
  if (buffering && customOnBufferStart !== null) {
1659
1661
  customOnBufferStart();
1660
1662
  } else if (!buffering && customOnBufferEnded !== null) {
1661
1663
  customOnBufferEnded();
1662
1664
  }
1663
- }, [buffering, customOnBufferStart, customOnBufferEnded]);
1665
+ }, [buffering /* , customOnBufferStart, customOnBufferEnded */]);
1666
+
1664
1667
  useEffect(() => {
1665
1668
  if (ended && customOnEnd !== null) {
1666
1669
  customOnEnd();
1667
1670
  }
1668
- }, [ended, customOnEnd]);
1671
+ }, [ended /* , customOnEnd */]);
1672
+
1669
1673
  useEffect(() => {
1670
1674
  const hasMetadata = metaWidth !== null || metaHeight !== null || metaDuration !== null;
1671
1675
  if (hasMetadata && customOnMetadataChange !== null) {
@@ -1679,6 +1683,74 @@ function useVideoPlayer(params) {
1679
1683
  return player;
1680
1684
  }
1681
1685
 
1686
+ const getWindowSize = () => ({
1687
+ width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1688
+ height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1689
+ });
1690
+ let currentSize = getWindowSize();
1691
+ function useWindowSize() {
1692
+ let {
1693
+ onChange = null
1694
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1695
+ const [size, setSize] = useState(currentSize);
1696
+ const updateSize = useCallback(() => {
1697
+ const newSize = getWindowSize();
1698
+ if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1699
+ currentSize = newSize;
1700
+ setSize(newSize);
1701
+ return newSize;
1702
+ }
1703
+ return null;
1704
+ }, [setSize]);
1705
+ const onResize = useCallback(() => {
1706
+ const newSize = updateSize();
1707
+ if (newSize !== null && onChange !== null) {
1708
+ onChange(newSize);
1709
+ }
1710
+ }, [onChange]);
1711
+ useWindowEvent('resize', onResize);
1712
+ useEffect(() => {
1713
+ onResize();
1714
+ }, []);
1715
+ return size;
1716
+ }
1717
+
1718
+ const hasViewport = typeof window !== 'undefined' && (window.visualViewport || null) !== null;
1719
+ const useVisualViewportSize = () => {
1720
+ const {
1721
+ width: windowWidth,
1722
+ height: windowHeight
1723
+ } = useWindowSize();
1724
+ const [{
1725
+ width: viewportWidth,
1726
+ height: viewportHeight
1727
+ }, setViewportSize] = useState({
1728
+ width: windowWidth,
1729
+ height: windowHeight
1730
+ });
1731
+ const onResize = useCallback(e => {
1732
+ const viewport = e.target;
1733
+ setViewportSize({
1734
+ width: viewport.width,
1735
+ height: viewport.height
1736
+ });
1737
+ }, [setViewportSize]);
1738
+ useEffect(() => {
1739
+ if (!hasViewport) {
1740
+ return () => {};
1741
+ }
1742
+ window.visualViewport.addEventListener('resize', onResize);
1743
+ return () => {
1744
+ window.visualViewport.removeEventListener('resize', onResize);
1745
+ };
1746
+ }, [onResize]);
1747
+ return {
1748
+ width: viewportWidth || windowWidth,
1749
+ height: viewportHeight || windowHeight
1750
+ };
1751
+ };
1752
+ var useVisualViewportSize$1 = useVisualViewportSize;
1753
+
1682
1754
  const getWindowScroll = () => ({
1683
1755
  x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
1684
1756
  y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
@@ -1713,36 +1785,4 @@ function useWindowScroll() {
1713
1785
  return scroll;
1714
1786
  }
1715
1787
 
1716
- const getWindowSize = () => ({
1717
- width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1718
- height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1719
- });
1720
- let currentSize = getWindowSize();
1721
- function useWindowSize() {
1722
- let {
1723
- onChange = null
1724
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1725
- const [size, setSize] = useState(currentSize);
1726
- const updateSize = useCallback(() => {
1727
- const newSize = getWindowSize();
1728
- if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1729
- currentSize = newSize;
1730
- setSize(newSize);
1731
- return newSize;
1732
- }
1733
- return null;
1734
- }, [setSize]);
1735
- const onResize = useCallback(() => {
1736
- const newSize = updateSize();
1737
- if (newSize !== null && onChange !== null) {
1738
- onChange(newSize);
1739
- }
1740
- }, [onChange]);
1741
- useWindowEvent('resize', onResize);
1742
- useEffect(() => {
1743
- onResize();
1744
- }, []);
1745
- return size;
1746
- }
1747
-
1748
- export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useIsVisible, useItemsPaginated, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useWindowEvent, useWindowScroll, useWindowSize, useYouTubePlayer, eventsManager as windowEventsManager };
1788
+ export { eventsManager$1 as documentEventsManager, getObserver, useCounter, useDailymotionPlayer, useDocumentEvent, useIntersectionObserver, useIsVisible, useItemsPaginated, useKeyboard, useNativeVideoPlayer, useObserver, usePlayerCurrentTime, useResizeObserver, useVideoPlayer, useVimeoPlayer, useVisualViewportSize$1 as useVisualViewportSize, 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.38",
3
+ "version": "0.0.40",
4
4
  "description": "React hooks",
5
5
  "keywords": [
6
6
  "javascript",
@@ -49,7 +49,7 @@
49
49
  "publishConfig": {
50
50
  "access": "public"
51
51
  },
52
- "gitHead": "b086529f761e895ed21a5a26a02f5b1902103fc2",
52
+ "gitHead": "cdf211231eecfb77f442f81af2b300c7dd78b6d7",
53
53
  "dependencies": {
54
54
  "@folklore/events": "^0.0.5",
55
55
  "@folklore/services": "^0.1.38",