react-file-previewer
Version:
A browser/device-agnostic file previewer for PDF and image file types built on top of React-PDF.
39 lines (30 loc) • 1.01 kB
JavaScript
import { pathOr } from 'ramda';
import { useState, useEffect } from 'react';
const useViewportSize = viewportElem => {
const isClient = typeof window === 'object';
const [size, setSize] = useState({
width: pathOr(0, ['current', 'clientWidth'], viewportElem),
height: pathOr(0, ['current', 'clientHeight'], viewportElem),
});
useEffect(() => {
setSize({
width: pathOr(0, ['current', 'clientWidth'], viewportElem),
height: pathOr(0, ['current', 'clientHeight'], viewportElem),
});
}, [viewportElem]);
useEffect(() => {
if (!isClient) {
return false;
}
function handleResize() {
setSize({
width: pathOr(0, ['current', 'clientWidth'], viewportElem),
height: pathOr(0, ['current', 'clientHeight'], viewportElem),
});
}
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, [viewportElem]);
return size;
};
export default useViewportSize;