Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3497 | Rev 3599 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3497 Rev 3498
Línea 1... Línea 1...
1
import { api } from '@api';
1
import { api } from '@api';
2
import { useApi } from './useApi';
2
import { useApi } from './useApi';
3
import { useAlert } from './useAlert';
3
import { useAlert } from './useAlert';
4
import { useEffect } from 'react';
4
import { useEffect, useRef } from 'react';
Línea 5... Línea 5...
5
 
5
 
6
const getResources = async (url, config) => {
6
const getResources = async (url, params) => {
7
  return await api.get(url, config);
7
  return await api.get(url, { params });
Línea 8... Línea 8...
8
};
8
};
9
 
9
 
10
export function useFetch(url) {
-
 
11
  const { showError } = useAlert();
10
export function useFetch(url, { params = undefined } = {}) {
-
 
11
  const { showError } = useAlert();
Línea 12... Línea 12...
12
 
12
  const { loading, data, error, execute } = useApi(getResources);
-
 
13
  const hasFetched = useRef(false);
13
  const { loading, data, error, execute } = useApi(getResources);
14
 
-
 
15
  useEffect(() => {
-
 
16
    if (!hasFetched.current) {
-
 
17
      execute(url, params);
-
 
18
      hasFetched.current = true;
14
 
19
    } else if (url || params) {
-
 
20
      // Volver a ejecutar si url o params cambian después de la inicial
Línea 15... Línea 21...
15
  useEffect(() => {
21
      execute(url, params);
16
    execute(url);
22
    }
17
  }, [url]);
23
  }, [url, params, execute]); // 'execute' también es una dependencia
Línea 18... Línea 24...
18
 
24
 
19
  useEffect(() => {
25
  useEffect(() => {
20
    if (error) showError(error);
26
    if (error) showError(error);
21
  }, [error]);
27
  }, [error, showError]); // 'showError' también es una dependencia
22
 
28
 
23
  return {
29
  return {