Files
service-aware-frontend/pkgs/ui/src/components/hooks/useFetch.tsx
sara-pervana 8ee14f1a7b
Some checks failed
checks-impure / test (push) Successful in 28s
checks / test (push) Successful in 1m13s
assets1 / test (push) Failing after 52s
Before Milestone Meeting Final Changes (#40)
some final fixes before the demo

Co-authored-by: Luis-Hebendanz <consulting@qube.email>
Reviewed-on: #40
Co-authored-by: sara-pervana <saramakishti@gmail.com>
Co-committed-by: sara-pervana <saramakishti@gmail.com>
2023-12-12 23:00:37 +01:00

34 lines
738 B
TypeScript

import { useState, useEffect } from "react";
import axios from "axios";
import { BASE_URL } from "@/constants";
const useFetch = (url: string) => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null);
const fetch = () => {
setLoading(true);
axios
.get(BASE_URL + url)
.then((response) => {
setData(response.data);
})
.catch((error) => {
setError(error);
})
.finally(() => {
setLoading(false);
});
};
useEffect(() => {
fetch();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [url]);
return { data, loading, error, fetch };
};
export default useFetch;