1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | Object.defineProperty(exports, "__esModule", {
|
6 | value: true
|
7 | });
|
8 | exports["default"] = void 0;
|
9 |
|
10 | var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
11 |
|
12 | var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
13 |
|
14 | var _react = require("react");
|
15 |
|
16 |
|
17 | var 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 |
|
46 | var _default = useWindowSize;
|
47 | exports["default"] = _default; |
\ | No newline at end of file |