Proyectos de Subversion LeadersLinked - SPA

Rev

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

Rev 3689 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 {
5
import {
6
  getRequestsReceived,
6
  getRequestsReceived,
7
  acceptRequest as acceptRequestService,
7
  acceptRequest as acceptRequestService,
8
  rejectRequest as rejectRequestService
8
  rejectRequest as rejectRequestService
9
} from '@groups/services';
9
} from '@groups/services';
10
 
10
 
11
export const useGroupsRequestReceived = () => {
11
export const useGroupsRequestReceived = () => {
12
  const navigate = useNavigate();
12
  const navigate = useNavigate();
13
 
13
 
14
  const { showAlert, closeAlert } = useAlertModal();
14
  const { showAlert, closeAlert } = useAlertModal();
15
  const { showError, showSuccess } = useAlert();
15
  const { showError, showSuccess } = useAlert();
16
 
16
 
17
  const {
17
  const {
18
    data: groups,
18
    data: groups,
19
    loading,
19
    loading,
20
    execute
20
    execute
21
  } = useApi(getRequestsReceived, {
21
  } = useApi(getRequestsReceived, {
22
    autoFetch: true
22
    autoFetch: true
23
  });
23
  });
24
 
24
 
25
  const { execute: acceptRequest } = useApi(acceptRequestService, {
25
  const { execute: acceptRequest } = useApi(acceptRequestService, {
26
    onSuccess: (message) => {
26
    onSuccess: (message) => {
27
      showSuccess(message);
27
      showSuccess(message);
28
      closeAlert();
28
      closeAlert();
29
      execute();
29
      execute();
30
    },
30
    },
31
    onError: (error) => {
31
    onError: (error) => {
32
      showError(error.message);
32
      showError(error.message);
33
    }
33
    }
34
  });
34
  });
35
 
35
 
36
  const { execute: executeRejectRequest } = useApi(rejectRequestService, {
36
  const { execute: executeRejectRequest } = useApi(rejectRequestService, {
37
    onSuccess: (message) => {
37
    onSuccess: (message) => {
38
      showSuccess(message);
38
      showSuccess(message);
39
      closeAlert();
39
      closeAlert();
40
      execute();
40
      execute();
41
    },
41
    },
42
    onError: (error) => {
42
    onError: (error) => {
43
      showError(error.message);
43
      showError(error.message);
44
    }
44
    }
45
  });
45
  });
46
 
46
 
47
  const rejectRequest = (url) => {
47
  const rejectRequest = (url) => {
48
    showAlert({
48
    showAlert({
49
      title: '¿Estás seguro de querer rechazar la invitación?',
49
      title: '¿Estás seguro de querer rechazar la invitación?',
50
      onConfirm: () => executeRejectRequest(url),
50
      onConfirm: () => executeRejectRequest(url),
51
      onCancel: closeAlert
51
      onCancel: closeAlert
52
    });
52
    });
53
  };
53
  };
54
 
54
 
55
  const viewGroup = (url) => {
55
  const viewGroup = (url) => {
56
    navigate(url);
56
    navigate(url);
57
  };
57
  };
58
 
58
 
59
  const searchGroups = debounce((value) => {
59
  const searchGroups = debounce((value) => {
60
    execute({ search: value });
60
    execute({ search: value });
61
  }, 500);
61
  }, 500);
62
 
62
 
63
  return { groups, loading, acceptRequest, rejectRequest, viewGroup, searchGroups };
63
  return { groups, loading, acceptRequest, rejectRequest, viewGroup, searchGroups };
64
};
64
};