import React from "react"; import PropTypes from "prop-types"; import addEvent from "./utils/addEvent"; import removeEvent from "./utils/removeEvent"; const ResizeEvent = "resize"; class WindowSize extends React.Component { static propTypes = { onChange: PropTypes.func }; handleWindowResize = () => { if (this.props.onChange) this.props.onChange({ width: window.innerWidth, height: window.innerHeight }); }; componentDidMount() { addEvent(window, ResizeEvent, this.handleWindowResize); } componentWillUnmount() { removeEvent(window, ResizeEvent, this.handleWindowResize); } render() { return null; } } export default WindowSize;