Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3688 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

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