Proyectos de Subversion LeadersLinked - SPA

Rev

Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3688 stevensc 1
import { useNavigate } from 'react-router-dom';
2
 
3
import { useAlert, useAlertModal, useApi } from '@shared/hooks';
4
import { debounce } from '@shared/utils';
5
import { getRequestsSent, cancelRequest as cancelRequestService } from '@groups/services';
6
 
7
export const useGroupsRequestsSent = () => {
8
  const navigate = useNavigate();
9
 
10
  const { showAlert, closeAlert } = useAlertModal();
11
  const { showError, showSuccess } = useAlert();
12
 
13
  const {
14
    data: groups,
15
    loading,
16
    execute
17
  } = useApi(getRequestsSent, {
18
    autoFetch: true
19
  });
20
 
21
  const { execute: executeCancelRequest } = useApi(cancelRequestService, {
22
    onSuccess: (message) => {
23
      showSuccess(message);
24
      closeAlert();
25
      execute();
26
    },
27
    onError: (error) => {
28
      showError(error.message);
29
    }
30
  });
31
 
32
  const cancelRequest = (url) => {
33
    showAlert({
34
      title: '¿Estás seguro de querer cancelar la solicitud?',
35
      onConfirm: () => executeCancelRequest(url),
36
      onCancel: closeAlert
37
    });
38
  };
39
 
40
  const viewGroup = (url) => {
41
    navigate(url);
42
  };
43
 
44
  const searchGroups = debounce((value) => {
45
    execute({ search: value });
46
  }, 500);
47
 
48
  return { groups, loading, cancelRequest, viewGroup, searchGroups };
49
};