@mantine/hooks
Version:
A collection of 50+ hooks for state and UI management
25 lines (24 loc) • 773 B
JavaScript
"use client";
import { useWindowEvent } from "../use-window-event/use-window-event.mjs";
import { useCallback, useEffect, useState } from "react";
//#region packages/@mantine/hooks/src/use-viewport-size/use-viewport-size.ts
const eventListerOptions = { passive: true };
function useViewportSize() {
const [windowSize, setWindowSize] = useState({
width: 0,
height: 0
});
const setSize = useCallback(() => {
setWindowSize({
width: window.innerWidth || 0,
height: window.innerHeight || 0
});
}, []);
useWindowEvent("resize", setSize, eventListerOptions);
useWindowEvent("orientationchange", setSize, eventListerOptions);
useEffect(setSize, []);
return windowSize;
}
//#endregion
export { useViewportSize };
//# sourceMappingURL=use-viewport-size.mjs.map