UNPKG

1.42 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9
10var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
14var _react = require("react");
15
16/* eslint-disable no-undef */
17var useWindowSize = function useWindowSize() {
18 var isClient = (typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) === 'object';
19 var getSize = (0, _react.useCallback)(function () {
20 return {
21 width: isClient ? window.innerWidth : undefined,
22 height: isClient ? window.innerHeight : undefined
23 };
24 }, [isClient]);
25
26 var _useState = (0, _react.useState)(getSize),
27 _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
28 windowSize = _useState2[0],
29 setWindowSize = _useState2[1];
30
31 (0, _react.useEffect)(function () {
32 if (!isClient) return false;
33
34 var handleResize = function handleResize() {
35 return setWindowSize(getSize());
36 };
37
38 window.addEventListener('resize', handleResize);
39 return function () {
40 return window.removeEventListener('resize', handleResize);
41 };
42 }, [getSize, isClient]);
43 return windowSize;
44};
45
46var _default = useWindowSize;
47exports["default"] = _default;
\No newline at end of file