Proyectos de Subversion LeadersLinked - Backend

Rev

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

import axios from 'axios'
import { useState, useEffect } from 'react'

function useDataFetching({ url, params }) {

        const [loading, setLoading] = useState(true)
        const [results, setResults] = useState([])
        const [error, setError] = useState('')

        useEffect(() => {
                const fetchData = async () => {
                        try {
                                const { data } = await params ? axios.get(url) : axios.get(url, { params: params })
                                if (!data.success) {
                                        setLoading(false)
                                        setError(data.data)
                                        return
                                }
                                setLoading(false)
                                setResults(data.data)
                        } catch (error) {
                                setLoading(false)
                                setError(error.message)
                        }
                        setLoading(false)
                }

                fetchData()
        }, [])

        return {
                error,
                loading,
                results
        }
}

export default useDataFetching