Proyectos de Subversion LeadersLinked - Backend

Rev

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

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