@folklore/hooks 0.0.38 → 0.0.39

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 +69 -32
  2. package/dist/es.js +69 -33
  3. package/package.json +2 -2
package/dist/cjs.js CHANGED
@@ -1690,6 +1690,74 @@ function useVideoPlayer(params) {
1690
1690
  return player;
1691
1691
  }
1692
1692
 
1693
+ const getWindowSize = () => ({
1694
+ width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1695
+ height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1696
+ });
1697
+ let currentSize = getWindowSize();
1698
+ function useWindowSize() {
1699
+ let {
1700
+ onChange = null
1701
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1702
+ const [size, setSize] = react.useState(currentSize);
1703
+ const updateSize = react.useCallback(() => {
1704
+ const newSize = getWindowSize();
1705
+ if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1706
+ currentSize = newSize;
1707
+ setSize(newSize);
1708
+ return newSize;
1709
+ }
1710
+ return null;
1711
+ }, [setSize]);
1712
+ const onResize = react.useCallback(() => {
1713
+ const newSize = updateSize();
1714
+ if (newSize !== null && onChange !== null) {
1715
+ onChange(newSize);
1716
+ }
1717
+ }, [onChange]);
1718
+ useWindowEvent('resize', onResize);
1719
+ react.useEffect(() => {
1720
+ onResize();
1721
+ }, []);
1722
+ return size;
1723
+ }
1724
+
1725
+ const hasViewport = typeof window !== 'undefined' && (window.visualViewport || null) !== null;
1726
+ const useVisualViewportSize = () => {
1727
+ const {
1728
+ width: windowWidth,
1729
+ height: windowHeight
1730
+ } = useWindowSize();
1731
+ const [{
1732
+ width: viewportWidth,
1733
+ height: viewportHeight
1734
+ }, setViewportSize] = react.useState({
1735
+ width: windowWidth,
1736
+ height: windowHeight
1737
+ });
1738
+ const onResize = react.useCallback(e => {
1739
+ const viewport = e.target;
1740
+ setViewportSize({
1741
+ width: viewport.width,
1742
+ height: viewport.height
1743
+ });
1744
+ }, [setViewportSize]);
1745
+ react.useEffect(() => {
1746
+ if (!hasViewport) {
1747
+ return () => {};
1748
+ }
1749
+ window.visualViewport.addEventListener('resize', onResize);
1750
+ return () => {
1751
+ window.visualViewport.removeEventListener('resize', onResize);
1752
+ };
1753
+ }, [onResize]);
1754
+ return {
1755
+ width: viewportWidth || windowWidth,
1756
+ height: viewportHeight || windowHeight
1757
+ };
1758
+ };
1759
+ var useVisualViewportSize$1 = useVisualViewportSize;
1760
+
1693
1761
  const getWindowScroll = () => ({
1694
1762
  x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
1695
1763
  y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
@@ -1724,38 +1792,6 @@ function useWindowScroll() {
1724
1792
  return scroll;
1725
1793
  }
1726
1794
 
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
1795
  exports.documentEventsManager = eventsManager$1;
1760
1796
  exports.getObserver = getObserver;
1761
1797
  exports.useCounter = useCounter;
@@ -1771,6 +1807,7 @@ exports.usePlayerCurrentTime = usePlayerCurrentTime;
1771
1807
  exports.useResizeObserver = useResizeObserver;
1772
1808
  exports.useVideoPlayer = useVideoPlayer;
1773
1809
  exports.useVimeoPlayer = useVimeoPlayer;
1810
+ exports.useVisualViewportSize = useVisualViewportSize$1;
1774
1811
  exports.useWindowEvent = useWindowEvent;
1775
1812
  exports.useWindowScroll = useWindowScroll;
1776
1813
  exports.useWindowSize = useWindowSize;
package/dist/es.js CHANGED
@@ -1679,6 +1679,74 @@ function useVideoPlayer(params) {
1679
1679
  return player;
1680
1680
  }
1681
1681
 
1682
+ const getWindowSize = () => ({
1683
+ width: typeof window !== 'undefined' ? window.innerWidth || 0 : 0,
1684
+ height: typeof window !== 'undefined' ? window.innerHeight || 0 : 0
1685
+ });
1686
+ let currentSize = getWindowSize();
1687
+ function useWindowSize() {
1688
+ let {
1689
+ onChange = null
1690
+ } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1691
+ const [size, setSize] = useState(currentSize);
1692
+ const updateSize = useCallback(() => {
1693
+ const newSize = getWindowSize();
1694
+ if (currentSize.width !== newSize.width || currentSize.height !== newSize.height) {
1695
+ currentSize = newSize;
1696
+ setSize(newSize);
1697
+ return newSize;
1698
+ }
1699
+ return null;
1700
+ }, [setSize]);
1701
+ const onResize = useCallback(() => {
1702
+ const newSize = updateSize();
1703
+ if (newSize !== null && onChange !== null) {
1704
+ onChange(newSize);
1705
+ }
1706
+ }, [onChange]);
1707
+ useWindowEvent('resize', onResize);
1708
+ useEffect(() => {
1709
+ onResize();
1710
+ }, []);
1711
+ return size;
1712
+ }
1713
+
1714
+ const hasViewport = typeof window !== 'undefined' && (window.visualViewport || null) !== null;
1715
+ const useVisualViewportSize = () => {
1716
+ const {
1717
+ width: windowWidth,
1718
+ height: windowHeight
1719
+ } = useWindowSize();
1720
+ const [{
1721
+ width: viewportWidth,
1722
+ height: viewportHeight
1723
+ }, setViewportSize] = useState({
1724
+ width: windowWidth,
1725
+ height: windowHeight
1726
+ });
1727
+ const onResize = useCallback(e => {
1728
+ const viewport = e.target;
1729
+ setViewportSize({
1730
+ width: viewport.width,
1731
+ height: viewport.height
1732
+ });
1733
+ }, [setViewportSize]);
1734
+ useEffect(() => {
1735
+ if (!hasViewport) {
1736
+ return () => {};
1737
+ }
1738
+ window.visualViewport.addEventListener('resize', onResize);
1739
+ return () => {
1740
+ window.visualViewport.removeEventListener('resize', onResize);
1741
+ };
1742
+ }, [onResize]);
1743
+ return {
1744
+ width: viewportWidth || windowWidth,
1745
+ height: viewportHeight || windowHeight
1746
+ };
1747
+ };
1748
+ var useVisualViewportSize$1 = useVisualViewportSize;
1749
+
1682
1750
  const getWindowScroll = () => ({
1683
1751
  x: typeof window !== 'undefined' ? window.scrollX || 0 : 0,
1684
1752
  y: typeof window !== 'undefined' ? window.scrollY || 0 : 0
@@ -1713,36 +1781,4 @@ function useWindowScroll() {
1713
1781
  return scroll;
1714
1782
  }
1715
1783
 
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 };
1784
+ 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.39",
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": "397a98521a56c8c3c509fa5f75b9e0f59e0f8662",
53
53
  "dependencies": {
54
54
  "@folklore/events": "^0.0.5",
55
55
  "@folklore/services": "^0.1.38",