26 lines
680 B
JavaScript
26 lines
680 B
JavaScript
import axios from "axios";
|
|
import { useState, useEffect } from "react";
|
|
|
|
const useFetch = (url) => {
|
|
const [data, setData] = useState({});
|
|
const [loading, setLoading] = useState(false)
|
|
const [error, setError] = useState({})
|
|
useEffect(() => {
|
|
const fetch = async () => {
|
|
let response;
|
|
try {
|
|
setLoading(true);
|
|
response = await axios.get(url);
|
|
setData(response?.data);
|
|
setLoading(false);
|
|
} catch(error) {
|
|
setError(error)
|
|
}
|
|
};
|
|
fetch();
|
|
}, [url]);
|
|
return { data, loading, error};
|
|
};
|
|
|
|
export default useFetch;
|