const React = require("react");
const PropTypes = require("prop-types");

const addEvent = require("../utils/addEvent");
const removeEvent = require("../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;
  }
}

module.exports = WindowSize;