UNPKG

@nlabs/arkhamjs-utils-react

Version:

ArkhamJS React Utilities

36 lines (35 loc) 3.45 kB
/** * Copyright (c) 2019-Present, Nitrogen Labs, Inc. * Copyrights licensed under the MIT License. See the accompanying LICENSE file for terms. */ import { useCallback, useEffect, useState } from 'react'; const isClient = typeof window === 'object'; const getWindowSize = ()=>{ if (isClient) { const { innerHeight: height, innerWidth: width } = window; return { height, width }; } return { height: 0, width: 0 }; }; export const useWindowSize = ()=>{ const [size, setSize] = useState(getWindowSize); const onResize = useCallback(()=>{ setSize(getWindowSize()); }, []); useEffect(()=>{ if (!isClient) { return undefined; } window.addEventListener('resize', onResize); return ()=>window.removeEventListener('resize', onResize); }, [ onResize ]); return size; }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L2Fya2hhbWpzL3BhY2thZ2VzL2Fya2hhbWpzLXV0aWxzLXJlYWN0L3NyYy91c2VXaW5kb3dTaXplLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIENvcHlyaWdodHMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLiBTZWUgdGhlIGFjY29tcGFueWluZyBMSUNFTlNFIGZpbGUgZm9yIHRlcm1zLlxuICovXG5pbXBvcnQge3VzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHtXaW5kb3dTaXplfSBmcm9tICcuL3VzZVdpbmRvd1NpemUudHlwZXMuanMnO1xuXG5jb25zdCBpc0NsaWVudCA9IHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnO1xuXG5jb25zdCBnZXRXaW5kb3dTaXplID0gKCk6IFdpbmRvd1NpemUgPT4ge1xuICBpZihpc0NsaWVudCkge1xuICAgIGNvbnN0IHtpbm5lckhlaWdodDogaGVpZ2h0LCBpbm5lcldpZHRoOiB3aWR0aH0gPSB3aW5kb3c7XG4gICAgcmV0dXJuIHtoZWlnaHQsIHdpZHRofTtcbiAgfVxuXG4gIHJldHVybiB7aGVpZ2h0OiAwLCB3aWR0aDogMH07XG59O1xuXG5leHBvcnQgY29uc3QgdXNlV2luZG93U2l6ZSA9ICgpOiBXaW5kb3dTaXplID0+IHtcbiAgY29uc3QgW3NpemUsIHNldFNpemVdID0gdXNlU3RhdGUoZ2V0V2luZG93U2l6ZSk7XG5cbiAgY29uc3Qgb25SZXNpemUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2l6ZShnZXRXaW5kb3dTaXplKCkpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZighaXNDbGllbnQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgICByZXR1cm4gKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgfSwgW29uUmVzaXplXSk7XG5cbiAgcmV0dXJuIHNpemU7XG59O1xuIl0sIm5hbWVzIjpbInVzZUNhbGxiYWNrIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJpc0NsaWVudCIsIndpbmRvdyIsImdldFdpbmRvd1NpemUiLCJpbm5lckhlaWdodCIsImhlaWdodCIsImlubmVyV2lkdGgiLCJ3aWR0aCIsInVzZVdpbmRvd1NpemUiLCJzaXplIiwic2V0U2l6ZSIsIm9uUmVzaXplIiwidW5kZWZpbmVkIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFdBQVcsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLFFBQU8sUUFBUTtBQUl2RCxNQUFNQyxXQUFXLE9BQU9DLFdBQVc7QUFFbkMsTUFBTUMsZ0JBQWdCO0lBQ3BCLElBQUdGLFVBQVU7UUFDWCxNQUFNLEVBQUNHLGFBQWFDLE1BQU0sRUFBRUMsWUFBWUMsS0FBSyxFQUFDLEdBQUdMO1FBQ2pELE9BQU87WUFBQ0c7WUFBUUU7UUFBSztJQUN2QjtJQUVBLE9BQU87UUFBQ0YsUUFBUTtRQUFHRSxPQUFPO0lBQUM7QUFDN0I7QUFFQSxPQUFPLE1BQU1DLGdCQUFnQjtJQUMzQixNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR1YsU0FBU0c7SUFFakMsTUFBTVEsV0FBV2IsWUFBWTtRQUMzQlksUUFBUVA7SUFDVixHQUFHLEVBQUU7SUFFTEosVUFBVTtRQUNSLElBQUcsQ0FBQ0UsVUFBVTtZQUNaLE9BQU9XO1FBQ1Q7UUFFQVYsT0FBT1csZ0JBQWdCLENBQUMsVUFBVUY7UUFDbEMsT0FBTyxJQUFNVCxPQUFPWSxtQkFBbUIsQ0FBQyxVQUFVSDtJQUNwRCxHQUFHO1FBQUNBO0tBQVM7SUFFYixPQUFPRjtBQUNULEVBQUUifQ==