import React from 'react';
import Loader from '../components/loader';

export default function fetchData(url, options) {
  return (Component) => class fetchComponent extends React.Component {
    constructor(props) {
      super(props);
      this.state = {
        finished = false;
        data = null;
      }
    }

    componentDidMount() {
      fetch(url, options)
        .then(r => r.json())
        .then(data => this.setState({ finished: true, data }))
    }

    render() {
      return (this.state.finished ? <Component {...props} data={this.state.data}> : <Loading/>);
    }
  }
}