import { Button, Typography } from "@mui/material"; import React from "react"; import { Link, useLocation, useNavigate } from "react-router-dom"; import { AuthApi } from "../api/AuthApi"; import { DeleteAccountTokenInfo, UserApi } from "../api/UserApi"; import { useAlert } from "../hooks/context_providers/AlertDialogProvider"; import { AsyncWidget } from "../widgets/AsyncWidget"; import { useConfirm } from "../hooks/context_providers/ConfirmDialogProvider"; export function DeleteAccountRoute(): React.ReactElement { const alert = useAlert(); const confirm = useConfirm(); const navigate = useNavigate(); const { hash } = useLocation(); const token = hash.substring(1); const [info, setInfo] = React.useState(); const checkToken = async () => { setInfo(await UserApi.CheckDeleteAccountToken(token)); }; const doDelete = async () => { try { if ( !(await confirm( "Voulez-vous vraiment supprimer votre compte ?", undefined, "Supprimer mon compte" )) ) return; await UserApi.DeleteAccount(token); AuthApi.RemoveAuthToken(); await alert("Votre compte a été supprimé avec succès !"); navigate("/"); } catch (e) { console.error(e); alert("Echec de la suppression du compte !"); } }; return ( (
Suppression de compte

{info?.email}

Voulez-vous vraiment supprimer votre compte ? Cette opération est irréversible !

)} /> ); }