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