Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev Autor Línea Nro. Línea
3416 stevensc 1
import { useEffect } from "react";
2
import { useDispatch } from "react-redux";
707 stevensc 3
 
3416 stevensc 4
import { api } from "@api";
5
import { useApi } from "./useApi";
6
import { asyncLogout } from "@store/auth/auth.actions";
7
import { addNotification } from "@store/notification/notification.actions";
2210 stevensc 8
 
3416 stevensc 9
const getResources = async (url) => {
10
  return await api.get(url);
11
};
12
 
2774 stevensc 13
export function useFetch(url, defaultValue = {}) {
3416 stevensc 14
  const { data, loading, error, execute } = useApi(getResources(url), {
15
    autoFetch: true,
16
  });
17
  const dispatch = useDispatch();
707 stevensc 18
 
3416 stevensc 19
  useEffect(() => {
20
    if (error) {
21
      dispatch(addNotification({ style: "danger", msg: err.message }));
22
      if (err.message.includes("sesión")) dispatch(asyncLogout());
2210 stevensc 23
    }
3416 stevensc 24
  }, [error]);
2210 stevensc 25
 
707 stevensc 26
  return {
3416 stevensc 27
    data: data ?? defaultValue,
28
    loading,
29
    refetch: execute,
30
  };
707 stevensc 31
}