Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import { useNavigate } from 'react-router-dom';
import { useAlert, useAlertModal, useApi } from '@shared/hooks';
import { debounce } from '@shared/utils';
import {
getRequestsReceived,
acceptRequest as acceptRequestService,
rejectRequest as rejectRequestService
} from '@groups/services';
export const useGroupsRequestReceived = () => {
const navigate = useNavigate();
const { showAlert, closeAlert } = useAlertModal();
const { showError, showSuccess } = useAlert();
const {
data: groups,
loading,
execute
} = useApi(getRequestsReceived, {
autoFetch: true
});
const { execute: acceptRequest } = useApi(acceptRequestService, {
onSuccess: (message) => {
showSuccess(message);
closeAlert();
execute();
},
onError: (error) => {
showError(error.message);
}
});
const { execute: executeRejectRequest } = useApi(rejectRequestService, {
onSuccess: (message) => {
showSuccess(message);
closeAlert();
execute();
},
onError: (error) => {
showError(error.message);
}
});
const rejectRequest = (url) => {
showAlert({
title: '¿Estás seguro de querer rechazar la invitación?',
onConfirm: () => executeRejectRequest(url),
onCancel: closeAlert
});
};
const viewGroup = (url) => {
navigate(url);
};
const searchGroups = debounce((value) => {
execute({ search: value });
}, 500);
return { groups, loading, acceptRequest, rejectRequest, viewGroup, searchGroups };
};