// @flow
import React from 'react';
import usePrevious from 'effects/use-previous';

// Returns true once a loading value has changed from false => true => false
export default function useFetched(fetching: boolean) {
  const wasFetching = usePrevious(fetching);
  const [fetched, setFetched] = React.useState(false);

  React.useEffect(() => {
    if (wasFetching && !fetching) {
      setFetched(true);
    }
  }, [wasFetching, fetching, setFetched]);

  return fetched;
}