@folklore/hooks 0.0.37 → 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 +70 -33
- package/dist/es.js +70 -34
- package/package.json +2 -2
package/dist/cjs.js
CHANGED
|
@@ -1400,7 +1400,7 @@ function useYouTubePlayer(id) {
|
|
|
1400
1400
|
const elementRef = react.useRef(null);
|
|
1401
1401
|
const playerRef = react.useRef(null);
|
|
1402
1402
|
const playerElementRef = react.useRef(elementRef.current);
|
|
1403
|
-
if (elementRef.current !== null && playerElementRef.current
|
|
1403
|
+
if (elementRef.current !== null && playerElementRef.current === null) {
|
|
1404
1404
|
playerElementRef.current = elementRef.current;
|
|
1405
1405
|
}
|
|
1406
1406
|
const elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
@@ -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
|
@@ -1389,7 +1389,7 @@ function useYouTubePlayer(id) {
|
|
|
1389
1389
|
const elementRef = useRef(null);
|
|
1390
1390
|
const playerRef = useRef(null);
|
|
1391
1391
|
const playerElementRef = useRef(elementRef.current);
|
|
1392
|
-
if (elementRef.current !== null && playerElementRef.current
|
|
1392
|
+
if (elementRef.current !== null && playerElementRef.current === null) {
|
|
1393
1393
|
playerElementRef.current = elementRef.current;
|
|
1394
1394
|
}
|
|
1395
1395
|
const elementHasChanged = elementRef.current !== playerElementRef.current;
|
|
@@ -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",
|