@react-hook/window-size
Version:
React hooks for updating components when the size of the `window` changes.
1 lines • 3.03 kB
Source Map (JSON)
{"version":3,"file":"index.dev.mjs","sources":["../../src/index.tsx"],"sourcesContent":["import {useDebounce} from '@react-hook/debounce'\nimport useEvent from '@react-hook/event'\n\nconst emptyObj = {}\n\nexport interface DebouncedWindowSizeOptions {\n initialWidth?: number\n initialHeight?: number\n wait?: number\n leading?: boolean\n}\n\nconst win = typeof window === 'undefined' ? null : window\nconst wv =\n win && typeof win.visualViewport !== 'undefined' ? win.visualViewport : null\nconst getSize = () =>\n [\n document.documentElement.clientWidth,\n document.documentElement.clientHeight,\n ] as const\n\nexport const useWindowSize = (\n options: DebouncedWindowSizeOptions = emptyObj\n): readonly [number, number] => {\n const {wait, leading, initialWidth = 0, initialHeight = 0} = options\n const [size, setDebouncedSize] = useDebounce<readonly [number, number]>(\n /* istanbul ignore next */\n typeof document === 'undefined' ? [initialWidth, initialHeight] : getSize,\n wait,\n leading\n )\n const setSize = (): void => setDebouncedSize(getSize)\n\n useEvent(win, 'resize', setSize)\n // @ts-expect-error\n useEvent(wv, 'resize', setSize)\n useEvent(win, 'orientationchange', setSize)\n\n return size\n}\n\nexport const useWindowHeight = (\n options?: Omit<DebouncedWindowSizeOptions, 'initialWidth'>\n): number => useWindowSize(options)[1]\n\nexport const useWindowWidth = (\n options?: Omit<DebouncedWindowSizeOptions, 'initialHeight'>\n): number => useWindowSize(options)[0]\n"],"names":["emptyObj","win","window","wv","visualViewport","getSize","document","documentElement","clientWidth","clientHeight","useWindowSize","options","wait","leading","initialWidth","initialHeight","size","setDebouncedSize","useDebounce","setSize","useEvent","useWindowHeight","useWindowWidth"],"mappings":";;;AAGA,IAAMA,QAAQ,GAAG,EAAjB,CAAA;AASA,IAAMC,GAAG,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgC,IAAhC,GAAuCA,MAAnD,CAAA;AACA,IAAMC,EAAE,GACNF,GAAG,IAAI,OAAOA,GAAG,CAACG,cAAX,KAA8B,WAArC,GAAmDH,GAAG,CAACG,cAAvD,GAAwE,IAD1E,CAAA;;AAEA,IAAMC,OAAO,GAAG,MACd,CACEC,QAAQ,CAACC,eAAT,CAAyBC,WAD3B,EAEEF,QAAQ,CAACC,eAAT,CAAyBE,YAF3B,CADF,CAAA;;IAMaC,aAAa,GAAG,SAAhBA,aAAgB,CAC3BC,OAD2B,EAEG;AAAA,EAAA,IAD9BA,OAC8B,KAAA,KAAA,CAAA,EAAA;AAD9BA,IAAAA,OAC8B,GADQX,QACR,CAAA;AAAA,GAAA;;EAC9B,IAAM;IAACY,IAAD;IAAOC,OAAP;AAAgBC,IAAAA,YAAY,GAAG,CAA/B;AAAkCC,IAAAA,aAAa,GAAG,CAAA;AAAlD,GAAA,GAAuDJ,OAA7D,CAAA;AACA,EAAA,IAAM,CAACK,IAAD,EAAOC,gBAAP,IAA2BC,WAAW;AAC1C;AACA,EAAA,OAAOZ,QAAP,KAAoB,WAApB,GAAkC,CAACQ,YAAD,EAAeC,aAAf,CAAlC,GAAkEV,OAFxB,EAG1CO,IAH0C,EAI1CC,OAJ0C,CAA5C,CAAA;;AAMA,EAAA,IAAMM,OAAO,GAAG,MAAYF,gBAAgB,CAACZ,OAAD,CAA5C,CAAA;;EAEAe,QAAQ,CAACnB,GAAD,EAAM,QAAN,EAAgBkB,OAAhB,CAAR,CAV8B;;AAY9BC,EAAAA,QAAQ,CAACjB,EAAD,EAAK,QAAL,EAAegB,OAAf,CAAR,CAAA;AACAC,EAAAA,QAAQ,CAACnB,GAAD,EAAM,mBAAN,EAA2BkB,OAA3B,CAAR,CAAA;AAEA,EAAA,OAAOH,IAAP,CAAA;AACD,EAlBM;AAoBA,IAAMK,eAAe,GAC1BV,OAD6B,IAElBD,aAAa,CAACC,OAAD,CAAb,CAAuB,CAAvB,EAFN;AAIA,IAAMW,cAAc,GACzBX,OAD4B,IAEjBD,aAAa,CAACC,OAAD,CAAb,CAAuB,CAAvB;;;;"}