feat: use REST API endpoint to delete current user

This commit is contained in:
Ali BARIN
2024-09-18 15:36:09 +00:00
committed by Faruk AYDIN
parent b78be222d7
commit ed12465975
2 changed files with 23 additions and 4 deletions

View File

@@ -1,31 +1,36 @@
import PropTypes from 'prop-types';
import * as React from 'react';
import { useNavigate } from 'react-router-dom';
import { useMutation } from '@apollo/client';
import * as URLS from 'config/urls';
import ConfirmationDialog from 'components/ConfirmationDialog';
import apolloClient from 'graphql/client';
import { DELETE_CURRENT_USER } from 'graphql/mutations/delete-current-user.ee';
import useAuthentication from 'hooks/useAuthentication';
import useFormatMessage from 'hooks/useFormatMessage';
import useCurrentUser from 'hooks/useCurrentUser';
import useDeleteCurrentUser from 'hooks/useDeleteCurrentUser';
function DeleteAccountDialog(props) {
const [deleteCurrentUser] = useMutation(DELETE_CURRENT_USER);
const formatMessage = useFormatMessage();
const { data } = useCurrentUser();
const currentUser = data?.data;
const { mutateAsync: deleteCurrentUser } = useDeleteCurrentUser(
currentUser.id,
);
const authentication = useAuthentication();
const navigate = useNavigate();
const handleConfirm = React.useCallback(async () => {
await deleteCurrentUser();
authentication.removeToken();
await apolloClient.clearStore();
navigate(URLS.LOGIN);
}, [deleteCurrentUser, currentUser]);
}, [deleteCurrentUser, authentication, navigate]);
return (
<ConfirmationDialog

View File

@@ -0,0 +1,14 @@
import { useMutation } from '@tanstack/react-query';
import api from 'helpers/api';
export default function useDeleteCurrentUser(userId) {
const query = useMutation({
mutationFn: async () => {
const { data } = await api.delete(`/v1/users/${userId}`);
return data;
},
});
return query;
}