Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6953 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6955 stevensc 1
import { useEffect, useState } from 'react'
6772 stevensc 2
import { axios } from '../utils'
3
 
6955 stevensc 4
const useFetchHelper = (helper = '') => {
5
  const [data, setData] = useState([])
6772 stevensc 6
  const [loading, setLoading] = useState(false)
7
  const [error, setError] = useState(null)
8
 
9
  useEffect(() => {
10
    const getHelper = (helper) => {
11
      setLoading(true)
12
 
13
      axios
14
        .get(`/helpers/${helper}`)
15
        .then(({ data: response }) => {
16
          const { data, success } = response
17
 
18
          if (!success) {
19
            const error =
20
              typeof data === 'string' ? data : 'Ha ocurrido un error'
21
            setError(error)
22
            return
23
          }
24
 
6810 stevensc 25
          if (!Array.isArray(data)) {
26
            const adapterData = Object.entries(data).map(([key, value]) => {
27
              return { value: key, name: value }
28
            })
29
            setData(adapterData)
30
            return
31
          }
32
 
6772 stevensc 33
          setData(data)
34
        })
35
        .catch((err) => setError(`Error: ${err}`))
36
        .finally(() => setLoading(false))
37
    }
38
 
39
    getHelper(helper)
40
  }, [])
41
 
42
  return { data, error, loading }
43
}
44
 
45
export default useFetchHelper