UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

1 lines 1.16 kB
{"version":3,"file":"use-viewport-size.cjs","names":[],"sources":["../../src/use-viewport-size/use-viewport-size.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { useWindowEvent } from '../use-window-event/use-window-event';\n\nconst eventListenerOptions = {\n passive: true,\n};\n\nexport function useViewportSize() {\n const [windowSize, setWindowSize] = useState({\n width: 0,\n height: 0,\n });\n\n const setSize = useCallback(() => {\n setWindowSize({ width: window.innerWidth || 0, height: window.innerHeight || 0 });\n }, []);\n\n useWindowEvent('resize', setSize, eventListenerOptions);\n useWindowEvent('orientationchange', setSize, eventListenerOptions);\n useEffect(setSize, []);\n\n return windowSize;\n}\n"],"mappings":";;;;AAGA,MAAM,uBAAuB,EAC3B,SAAS,KACX;AAEA,SAAgB,kBAAkB;CAChC,MAAM,CAAC,YAAY,kBAAA,GAAA,MAAA,UAA0B;EAC3C,OAAO;EACP,QAAQ;CACV,CAAC;CAED,MAAM,WAAA,GAAA,MAAA,mBAA4B;EAChC,cAAc;GAAE,OAAO,OAAO,cAAc;GAAG,QAAQ,OAAO,eAAe;EAAE,CAAC;CAClF,GAAG,CAAC,CAAC;CAEL,yBAAA,eAAe,UAAU,SAAS,oBAAoB;CACtD,yBAAA,eAAe,qBAAqB,SAAS,oBAAoB;CACjE,CAAA,GAAA,MAAA,WAAU,SAAS,CAAC,CAAC;CAErB,OAAO;AACT"}