Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 8415 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
14843 stevensc 1
import axios from 'axios'
2
import { useState, useEffect } from 'react'
7215 stevensc 3
 
7235 stevensc 4
function useDataFetching({ url, params }) {
7215 stevensc 5
 
14843 stevensc 6
	const [loading, setLoading] = useState(true)
7
	const [results, setResults] = useState([])
8
	const [error, setError] = useState('')
7215 stevensc 9
 
14843 stevensc 10
	useEffect(() => {
11
		const fetchData = async () => {
12
			try {
13
				const { data } = await params ? axios.get(url) : axios.get(url, { params: params })
14
				if (!data.success) {
15
					setLoading(false)
16
					setError(data.data)
17
					return
18
				}
19
				setLoading(false)
20
				setResults(data.data)
21
			} catch (error) {
22
				setLoading(false)
23
				setError(error.message)
24
			}
25
			setLoading(false)
26
		}
7215 stevensc 27
 
14843 stevensc 28
		fetchData()
29
	}, [])
7215 stevensc 30
 
14843 stevensc 31
	return {
32
		error,
33
		loading,
34
		results
35
	}
7215 stevensc 36
}
37
 
14843 stevensc 38
export default useDataFetching