import PropTypes from 'prop-types'; import * as React from 'react'; import { useNavigate } from 'react-router-dom'; import * as URLS from 'config/urls'; import ConfirmationDialog from 'components/ConfirmationDialog'; import apolloClient from 'graphql/client'; import useAuthentication from 'hooks/useAuthentication'; import useFormatMessage from 'hooks/useFormatMessage'; import useCurrentUser from 'hooks/useCurrentUser'; import useDeleteCurrentUser from 'hooks/useDeleteCurrentUser'; function DeleteAccountDialog(props) { 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, authentication, navigate]); return ( ); } DeleteAccountDialog.propTypes = { onClose: PropTypes.func.isRequired, }; export default DeleteAccountDialog;