Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 7217 | Rev 7223 | 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
 
4
function useDataFetching(dataSource) {
5
 
6
    const { url, params } = dataSource
7
    const [loading, setLoading] = useState(true);
8
    const [results, setResults] = useState([]);
9
    const [error, setError] = useState("");
10
 
11
    useEffect(() => {
7221 stevensc 12
        fetchData = async () => {
7215 stevensc 13
            try {
7221 stevensc 14
                const { data } = axios.get(url, { params: params });
7215 stevensc 15
 
16
                if (!data.success) {
7221 stevensc 17
                    setLoading(false);
18
                    setError(data.data)
7215 stevensc 19
                    return
20
                }
21
 
22
                setLoading(false);
23
                setResults(data.data);
24
            } catch (error) {
25
                setLoading(false);
26
                setError(error.message);
27
            }
7221 stevensc 28
 
29
            setLoading(false);
7215 stevensc 30
        }
31
 
32
        fetchData();
33
    }, [dataSource]);
34
 
35
    return {
36
        error,
37
        loading,
38
        results
39
    };
40
}
41
 
42
export default useDataFetching;