UNPKG

1.77 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.useResizeListener = undefined;
7
8var _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');
9
10var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
11
12var _react = require('react');
13
14function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16var useResizeListener = exports.useResizeListener = function useResizeListener(_ref) {
17 var threshold = _ref.threshold,
18 showLog = _ref.showLog;
19
20 var _useState = (0, _react.useState)({
21 isOverThreshold: false
22 }),
23 _useState2 = (0, _slicedToArray3.default)(_useState, 2),
24 state = _useState2[0],
25 setState = _useState2[1];
26
27 var setIsOverThresholdTo = function setIsOverThresholdTo(value) {
28 return setState({ isOverThreshold: value });
29 };
30 var listener = function listener() {
31 if (typeof window !== 'undefined' && window.innerWidth >= threshold) {
32 setIsOverThresholdTo(true);
33 } else {
34 setIsOverThresholdTo(false);
35 }
36 };
37 (0, _react.useEffect)(function () {
38 showLog && console.log('useEffect 0');
39 if (typeof window !== 'undefined') {
40 if (window.innerWidth >= threshold) {
41 setIsOverThresholdTo(true);
42 }
43 window.addEventListener('resize', listener);
44 }
45 return function () {
46 showLog && console.log('useEffect 1');
47 if (typeof window !== 'undefined') {
48 window.removeEventListener('resize', listener);
49 }
50 };
51 }, []);
52
53 return state;
54};
55
56var ResizeListener = function ResizeListener(_ref2) {
57 var children = _ref2.children,
58 threshold = _ref2.threshold;
59 return children(useResizeListener({ threshold: threshold }));
60};
61
62exports.default = ResizeListener;
\No newline at end of file