@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.
- package/dist/cjs.js +69 -32
- package/dist/es.js +69 -33
- 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
|
-
|
|
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.
|
|
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": "
|
|
52
|
+
"gitHead": "397a98521a56c8c3c509fa5f75b9e0f59e0f8662",
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"@folklore/events": "^0.0.5",
|
|
55
55
|
"@folklore/services": "^0.1.38",
|