import { useState, useEffect } from 'react'; type UseApi = { loading: boolean, data: any, error: any }; const useApi = (_url: string, _options?: {}) : UseApi => { const [loading, setLoading] = useState(true); const [data, setData] = useState(undefined); const [error, setError] = useState(undefined); useEffect(() => { if (_url === '') { return; } const fetchApi = async () => { console.log(`Fetching ${_url}...`); try { const res = await window.fetch(_url, _options); const data = await res.json(); setData(data); setLoading(false); } catch (e) { console.log(e); setError(e) setLoading(false); }; }; fetchApi(); }, [_url, _options]); return { loading, data, error }; }; export type { UseApi }; export { useApi };